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;
}