c语言回文数程序,第二个for语句里为什么是--p啊,p不是一直随k在变大吗? - 爱问答

(爱问答)

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

但这个程序明显是新手写的,算法效率低下

以下是我写的参考,功能与上面完全等价(不过建议你还是要用自己的想法实现)

c语言回文数程序,第二个for语句里为什么是--p啊,p不是一直随k在变大吗?


相关标签:c语言

下一篇:AdbePM,extendscript,ScCore.dll,CRClient.dll都丢失怎么办?

上一篇:结构体数组的初始化

热门标签:
excel 网盘 破解 word dll
最新更新:
微软重新评估新的Outlook的使用时机 联想推出搭载联发科Helio G80芯片组的Tab M9平板 英特尔创新大赛时间确定! 微软Edge浏览器在稳定渠道中推出Workspaces功能 英伟达RTX4060TiGPU推出MaxSun动漫主题! 谷歌地图为用户提供了街景服务! GameSir 在T4 Kaleid中推出了一款出色的控制器! 微软开始在Windows 11 中测试其画图应用程序的新深色模式! LG电子推出全球首款无线OLED电视 英伟达人工智能芯片崭露头角! Steam Deck可以玩什么游戏-Steam Deck价格限时优惠 雷蛇推出CobraPro鼠标 Kindle电子阅读器可以访问谷歌商店吗 Windows10如何加入组策略 window10图片查看器怎么没有了?