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


你可能感兴趣的:(a)