题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5373

一开始想到用整除11的性质去做,即奇位数的和和偶位数的和的差为11的倍数,但估不准数据范围没敢去做,

尝试去敲大数,HFZ想出了一个比较巧的方法,模拟计算的过程,用变量去存sum,sum = sum + 各位数字之和,

如果更新后的num是11的倍数,num就可以归0了,极大简化了过程,Int范围内就可以做。代码如下:

 #include<stdio.h>

 int get_sum(int x){
     ;
     while(x){
         sum += x%;
         x /= ;
     }
     return sum;
 }

 int get_lgt(int x){
     ;
     while(x >= base){
         ;
     }
     return base;
 }

 int main(){
     int num;
     int n;
     int sum;
     int lgt;
     ;
     while(scanf("%d %d",&num,&n)){
          && n == -)
             break;
         if(n){
             sum = ;
             sum = sum+get_sum(num);
             num %= ;
             lgt = get_lgt(sum);
             num = num*lgt+sum;
         }
         ; i < n; ++i){
             //sum一直存sum,num一直存目前的数
             sum = sum+get_sum(sum);
             num %= ;
             lgt = get_lgt(sum);
             num = num*lgt+sum;
         }
         printf("Case #%d: ",++T);

         ))
             puts("Yes");
         else
             puts("No");
     }
 }
05-08 08:29