c语言编辑回文数,C语言实例 回文数

打印所有不超过n(取n<256) 的其平方具有对称性质的数(也称回文数)。

*问题分析与算法设计

对于要判断的数n,计算出其平方后(存于a),将a的每一位进行分解,再按a的从低到高的顺序将其恢复成一个数k(如n=13,则a=169且k=961),若a等于k则可判定n为回文数。

*程序说明与注释

原程序好像有错,而且比较费解,现基于原程序修改如下(如果读者还发现错误请提出):

#include

int main(void)

{

int m[16],n,i,t,count=0;

long unsigned a,k;

printf("No. number it's square(palindrome)\n");

for(n=1;n<256;n++) /*穷举n的取值范围*/

{

k=0;t=1;a=n*n; /*计算n的平方*/

for(i=0;a!=0;i++) /*从低到高分解数a的每一位存于数组m[0]~m[16]*/

{

m[i]=a%10;//这个是取得a的个位,整个循环合起来就可以取得各个位

a/=10;

}

int j=0;

for(i--;j

if(m[j]!=m[i])break;//只要有一位不是对称,那就说明不是对称,就可以退出了

//所有的位都对称就说明是对称了,这样就可以打印出结果了

if(j>=i)printf("%2d%10d%10d\n",++count,n,n*n);

}

return 0;

}

*运行结果

No. number it's square(palindrome)

1 1 1

2 2 4

3 3 9

4 11 121

5 22 484

6 26 676

7 101 10201

8 111 12321

9 121 14641

10 202 40804

11 212 44944

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值