有道难题重复数另类解法

    技术2022-05-19  22

    #include <stdio.h>void addto(int k, int nums[]){ int i; int flag = 1; for(i = k; i >= 0; i--){  if(flag){   flag = 0;   nums[i] = 0;  }else{   flag = 1;   nums[i] = 1;  } }  }int main(){ int nums[18] = {0}; long n=32299547; int i = 0, j = 0, k = 0; scanf("%d",&n); while(n){  nums[i++] = n % 10;  n /=10; } j = i - 1 ; for(i = j; i > 0; i--){  if(nums[i] == nums[i - 1]){   if(nums[i] < 9){    nums[i - 1] +=1;    addto(i - 2, nums);    break;   }else{    nums[i + 1] += 1;    if(nums[i + 1] == nums[i + 2]){     nums[i] = nums[i - 1] = 0;    // printf("ok/n");     i +=3;     if(i > j)j++;    }    else{     addto(i, nums);     break;    }   }   } } for(i = j; i >= 0; i--)  printf("%d",nums[i]); printf("/n");}

    个人email: liych.jack@gmail.com 欢迎交流。


    最新回复(0)