FZU 1057 a^b

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


posted on 2012-08-06 08:54  江财小子  阅读(376)  评论(0编辑  收藏  举报