第4题 整数乘方
定义a的n次幂an=a*a*…*a(共n个a相乘)。记an的十进制表示转换为字符串后奇数字符(阿拉伯数字1,3,5,7,9)的个数为A,偶数字符(阿拉伯数字0,2,4,6,8)的个数为B,求A-B的数值。
例如,a=3,n=12, an=312=(531441)10,
奇数数位用方框标出:5 3 1 4 4 1,故A=4;
偶数数位用方框标出:5 3 1 4 4 1,故B=2,A-B=2。
输入格式
输入一行两个整数a,n。
30%的数据满足an<232;所有数据满足2≤a≤9,1≤n≤100。
输出格式
输出一个整数,代表A-B的值。
输入/输出例子1
输入:
3 12
输出:
2
输入/输出例子2
输入:
5 18
输出:
-1
样例解释
518=3,814,697,265,625,A-B=-1
#include<bits/stdc++.h>
using namespace std;
int a[1000000];
int main(){
int n,b;
cin>>b>>n;
a[1]=1;
int k=1,x=0;
for(int i=1;i<=n;i++){
int x=0;
for(int j=1;j<=k;j++){
a[j]=a[j]*b+x;
x=a[j]/10;
a[j]%=10;
if(x!=0&&j==k)
k++;
}
}
int va=0,vb=0;
for(int i=k;i>=1;i--)
{
if(a[i]%2==0)
vb++;
else
{
va++;
}
}
cout<<va-vb;
return 0;
}