我知道下面的程序错误是因为数太大2^30,

问题描述:

我知道下面的程序错误是因为数太大2^30,
给定a和b,输出a^b的最后一个数字.
输入
输入数据有多组,每组数据占一行,每行为a和b的值(0

思维太死了,你想想要求的最后一位跟什么有关?这结果不就跟求a的最后一位的b次方一样吗?然后,你想想,b次方里面,每4次方不是一个循环吗?比如对3来说,3-9-7-1-3-9-7-1,对7来说7-9-3-1-7-9-3-1,那么这个程序不就相当于,...#includeint main(){int a,s,d,f,i; while(scanf("%d%d",&a,&s)) { if(s==0) printf("1\n");else {s=s%4; a=a%10;if(s==0) {for(i=0,d=1;i