Problem 1057 ab Accept: 815 Submit: 2639 Time Limit: 1000 mSec Memory Limit : 32768 KB Problem Description 对于任意两个正整数a,b(0<=a,b<10000)计算ab各位数字的和的各位数字的和的各位数字的和的各位数字的和。 Input 输入有多组数据,每组只有一行,包含两个正整数a,b。最后一组a=0,b=0表示输入结束,不需要处理。 Output 对于每组输入数据,输出ab各位数字的和的各位数字的和的各位数字的和的各位数字的和。 Sample Input 2 3 5 7 0 0 Sample Output 8 5 Source FZUPC Warmup 2005
//一个数不断求各位数和就等于这个数mod 9,如果是9的倍数那么就是9
#include <iostream>
#include <stdio.h>
#include <string.h>
#include <algorithm>
#include <queue>
#include <cmath>
#define N 10002
using namespace std;
int main()
{
int a,b;
int t;
while(scanf("%d%d",&a,&b),a||b)
{
if(a==0) {printf("0\n");continue;}
t=1;
for(;b>0;b=b>>1,a=(a*a)%9)
if(b&1) t=(t*a)%9;
if(t==0) t=9;
printf("%d\n",t);
}
return 0;
}
相关文章: