c语言回文数程序,第二个for语句里为什么是--p啊,p不是一直随k在变大吗?
#include<stdio.h>
#include<math.h>
int main()
{
int a[200]={0},b,c,d=0,i,k,p,sum=0;
scanf("%d",&b);
for(k=1,c=10;b/c>0;++k) c*=10;
for(i=0,p=k-1;i<k;++i,--p){
a[i]=(b%(int)pow(10,i+1)/(int)pow(10,i));
sum+=a[i];
d+=a[i]*pow(10,p);
}
if(d==b)printf("%d ",sum);
else printf("no ");
sum=0;d=0;
return 0;
}
k是位数,p是10的k次方值
而循环中,p当然要递减的,如一个4位数,p就是3 2 1 0
也就对应1000,100,10,1
但这个程序明显是新手写的,算法效率低下
以下是我写的参考,功能与上面完全等价(不过建议你还是要用自己的想法实现)
热门标签: