Calculate the Sum Seed of a number
Hi,
Our question here was to generate all the numbers whose sum of digits when added to that number results to input number. So to do this we can do following
a) Take the input number
b) find total digits in that number (i.e if input number is 256 total of digit is 3).
c) Subtract 9 for each digit in the number (i.e if number is 256 substract 3*9 = 27 from 256. so new number will be 256-27= 229).
d) now check all numbers from new number (229) to input number (256) ie if sum of digits added to number gives input number.
e) if any number found print that number (245 which is between 229 & 256, when added to 2+4+5 gives 256)
f) if any number is not found print error message (if input number is 108, no combination is found)
#!/usr/bin/perl/
my $number;my $total_digits=0;my $temp_num;my @digits;my $counter;my $temp_number;my $flag=0;$number = shift;$temp_num=$number;@digits= &split_digits ($number);$total_digits=@digits;$temp_num=$number-(9*$total_digits);for($count=$temp_num;$count < $number ;$count++){@digits=undef;@digits=&split_digits $count);$temp_number=&digit_sum();$temp_number=$temp_number+$count;if($temp_number==$number){print "$number = $count+ @digits \n";$flag=1;}}if($flag==0){print "Sorry!! no sum seed for number $number";}sub split_digits(){my $number=shift;my @digit;@digit=split (undef,$number);return(@digit);}sub digit_sum(){my $sum=0;my $counter;for ($counter=0;$counter < $total_digits ;$counter++) {$sum=$sum+$digits[$counter];}return($sum);}
#!/usr/bin/perl/
- H.M October 20, 2014my $number;
my $total_digits=0;
my $temp_num;
my @digits;
my $counter;
my $temp_number;
my $flag=0;
$number = shift;
$temp_num=$number;
@digits= &split_digits ($number);
$total_digits=@digits;
$temp_num=$number-(9*$total_digits);
for ($count=$temp_num;$count < $number ;$count++) {
@digits=undef;
@digits=&split_digits ($count);
$temp_number=&digit_sum();
$temp_number=$temp_number+$count;
if($temp_number==$number)
{
print "$number = $count+ @digits \n";
$flag=1;
}
}
if($flag==0)
{
print "Sorry!! no sum seed for number $number";
}
sub split_digits()
{
my $number=shift;
my @digit;
@digit=split (undef,$number);
return(@digit);
}
sub digit_sum()
{ my $sum=0;
my $counter;
for ($counter=0;$counter < $total_digits ;$counter++) {
$sum=$sum+$digits[$counter];
}
return($sum);
}