Solved

Digit arrangement

Posted on 2006-11-13
7
1,410 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
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 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
Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
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

Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

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

Suggested Solutions

Title # Comments Views Activity
How to XOR 0x24 21 696
Animals for $100 bucks 5 1,148
Solving 3x3 Simultaneous Equations 8 756
sudoku - is there a Maths to solving a puzzle? 6 323
While it may be true that the internet is a place of possibilities, it is also a hostile environment lurking with many dangers. By clicking on the wrong link, trusting the wrong person or using a weak password, you are virtually inviting hackers to …
Read the original post on Monitis Blog. Believe it or not, the most important thing about the website of your business is not what’s on it but how fast it loads. Yes, that’s right!    As you can see on this infographic (an oldie but goodie!), …
With Secure Portal Encryption, the recipient is sent a link to their email address directing them to the email laundry delivery page. From there, the recipient will be required to enter a user name and password to enter the page. Once the recipient …
Attackers love to prey on accounts that have privileges. Reducing privileged accounts and protecting privileged accounts therefore is paramount. Users, groups, and service accounts need to be protected to help protect the entire Active Directory …

730 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