Solved

Digit arrangement

Posted on 2006-11-13
7
1,361 Views
Last Modified: 2006-11-18
Try this simple algorithm on for size.

Design an algorithm that, when given an arrangement of the digits 0,1,2,3,4,5,6,7,8,9, rearranges the digits so that the new arrangement represents the next larger value that can be represented by these digits (or reports that no such rearrangement exists if no rearrangement produces a larger value). Thus 5647382901 would produce 5647382910.
0
Comment
Question by:TheTechGuysNYC
  • 3
  • 2
  • 2
7 Comments
 
LVL 3

Author Comment

by:TheTechGuysNYC
ID: 17931065
Hint:

A few examples to help the process...

0123456789
0123456798
0123456897
0123456879

0
 
LVL 3

Author Comment

by:TheTechGuysNYC
ID: 17931072
Psuedocode is all that is needed to be correct...
0
 
LVL 84

Assisted Solution

by:ozo
ozo earned 100 total points
ID: 17932774
#!/usr/bin/perl
sub permute {
    my ($hold, @items) = @_;
    print("@items\n"), return if $hold+1==@items;
    foreach $i ($hold..$#items) {
      @items[$hold, $i] = @items[$i, $hold];
      permute($hold+1, @items);
    }
}
@arr=(0..9);
permute(0, @arr);
0
Live: Real-Time Solutions, Start Here

Receive instant 1:1 support from technology experts, using our real-time conversation and whiteboard interface. Your first 5 minutes are always free.

 
LVL 32

Expert Comment

by:awking00
ID: 17932823
Are you sure you don't mean for your examples to be like this?
0123456789
0123456798
0123456879
0123456897
0
 
LVL 84

Expert Comment

by:ozo
ID: 17933033
0
 
LVL 32

Accepted Solution

by:
awking00 earned 400 total points
ID: 17933204
In pseudo code -
Add 9 to the number to get a new number
If the sum of the digits of the new number does not = 45
then continue adding 9 until they do.
0
 
LVL 84

Expert Comment

by:ozo
ID: 17933904
adding 9 until the sum = 45 will get you to 123456888, which is not a rearangement
0

Featured Post

Courses: Start Training Online With Pros, Today

Brush up on the basics or master the advanced techniques required to earn essential industry certifications, with Courses. Enroll in a course and start learning today. Training topics range from Android App Dev to the Xen Virtualization Platform.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
Breaking vigenere cipher 2 2,033
Trying to rememeber a show i used to watch (Hunter?) 10 222
Regex golf anyone? 10 515
Probability 13 137
Troubleshooting common task sequence error codes
SEO can be a real minefield to navigate, but there are three simple ways to up your SEO game just be re-assessing your content output.
This tutorial gives a high-level tour of the interface of Marketo (a marketing automation tool to help businesses track and engage prospective customers and drive them to purchase). You will see the main areas including Marketing Activities, Design …
Nobody understands Phishing better than an anti-spam company. That’s why we are providing Phishing Awareness Training to our customers. According to a report by Verizon, only 3% of targeted users report malicious emails to management. With compan…

776 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question