Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- void count(int num, int *zeros, int *ones, int *twos, int *threes, int *fours, int *fives, int *sixes, int *sevens, int *eights, int *nines);
- void printTimes(char c, int times);
- int largest();
- int main() {
- largest();
- }
- void count(int num, int *zeros, int *ones, int *twos, int *threes, int *fours, int *fives, int *sixes, int *sevens, int *eights, int *nines){
- // Counts the occurances of each digits without an explicit loop
- if (num == 0)
- return;
- int last = num % 10;
- int remain = num / 10;
- printf("Last: %d\n", last);
- if (last == 0) (*zeros)++;
- else if (last == 1) (*ones)++;
- else if (last == 2) (*twos)++;
- else if (last == 3) (*threes)++;
- else if (last == 4) (*fours)++;
- else if (last == 5) (*fives)++;
- else if (last == 6) (*sixes)++;
- else if (last == 7) (*sevens)++;
- else if (last == 8) (*eights)++;
- else (*nines)++;
- count(remain, zeros, ones, twos, threes, fours, fives, sixes, sevens, eights, nines);
- }
- void printTimes(char c, int times) {
- // Prints char `c` on the same line `times` times
- if (times == 0)
- return;
- printf("%c", c);
- printTimes(c, times-1);
- }
- int largest(){
- int num;
- int zeros, ones, twos, threes, fours, fives, sixes, sevens, eights, nines;
- zeros = ones = twos = threes = fours = fives = sixes = sevens = eights = nines = 0;
- scanf("%d", &num);
- count(num<0?-num:num, &zeros, &ones, &twos, &threes, &fours, &fives, &sixes, &sevens, &eights, &nines);
- if (num >= 0) {
- printTimes('9', nines);
- printTimes('8', eights);
- printTimes('7', sevens);
- printTimes('6', sixes);
- printTimes('5', fives);
- printTimes('4', fours);
- printTimes('3', threes);
- printTimes('2', twos);
- printTimes('1', ones);
- printTimes('0', zeros);
- }
- else {
- printf("-");
- printTimes('1', ones);
- printTimes('2', twos);
- printTimes('3', threes);
- printTimes('4', fours);
- printTimes('5', fives);
- printTimes('6', sixes);
- printTimes('7', sevens);
- printTimes('8', eights);
- printTimes('9', nines);
- }
- putchar('\n');
- }
Advertisement
Add Comment
Please, Sign In to add comment