#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 欢迎交流。