先给大家表演一个土下座道歉,我A题读错题了,已更正……呜呜呜
A,值得注意的是不要用系统自带的pow函数求幂,因为这个函数是以double类型操作的,转化成我们要的long long 或者int 都有精度上的误差,所以需要你手撸一个求幂函数,这里给出普通的循环求幂的函数(之前写的快速幂还是难理解了点),至于具体操作流程详情见代码片注释
#include<stdio.h>
#include<string.h>
#define maxn 20
long long T, n, num[maxn], cnt;
long long Pow(int x, int p) //循环求x的p次方
{
long long ret = 1;
for(int i=1; i<=p; i++)
ret *= x;
return ret;
}
void solve(long long x) //这一步是把输入的整数拆分成每一个数字,数组num[]存
{
while(x!=0)
{
num[++cnt] = x % 10;
x /= 10;
}
}
void check() //检查能不能转化
{
long long sum=0;
for(int i=1; i<=cnt; i++) //cnt同时还是数字的长度
sum += Pow(num[i], cnt); //每一位的cnt次方,求和
if(sum==n)
printf("Yes\n");
else
printf("No\n");
}
int main()
{
scanf("