国产成人免费观看视频_亚洲国产激情_www.91视频com_www.久久_91视频全集_亚洲综合在

大学生新闻网,大学生新闻发布平台
大学生新闻网
大学生新闻大学生活校园文学大学生村官
社会实践活动社会实践经历社会实践报告社会实践总结社会实践心得
全国排名校友会版软科排名分类排名本科排名一本排名二本排名专科排名学校地址
求职简历职场法则面试技巧职场故事求职招聘大学生就业
英语学习计算机学习电气工程机械工程经济管理建筑设计财务会计
申请书证明书检讨书自荐信演讲稿心得体会调查报告读后感求职信推荐信其它范文

C语言求回文数

问题描述
打印所有不超过n(取n<256)的其平方具有对称性质的数(也称回文数)。
问题分析
对于要判定的数n计算出其平方后(存于a),按照“回文数”的定义要将最高位与最低位、次高位与次低位……进行比较,若彼此相等则为回文数。此算法需要知道平方数的位数,再一一将每一位分解、比较,此方法对于位数已知且位数不是太多的数来说比较适用。

此问题可借助数组来解决。将平方后的(a的)每一位进行分解,按从低位到高位的顺序依次暂存到数组中,再将数组中的元素按照下标从大到小的顺序重新将其组合成一个数众(如n=15,则a=225且k=522),若k等于n×n则可判定n为回文数。

算法设计
从低位到高位将某一整数拆分。对于一个整数(设变量名为a)无论其位数多少,若欲将最低位拆分,只需对10进行求模运算a%10,拆分次低位首先要想办法将原来的次低位作为最低位来处理,用原数对10求商可得到由除最低位之外的数形成的新数,且新数的最低位是原数的次低位,根据拆分最低位的方法将次低位求出a/10、a%10,对于其他位上的数算法相同。

利用这个方法要解决的一个问题就是,什么情况下才算把所有数都拆分完?当拆分到只剩原数最高位时(即新数为个位数时),再对10求商的话,得到的结果肯定为0,可以通过这个条件判断是否拆分完毕。根据题意,应将每次拆分出来的数据存储到数组中,原数的最低位存到下标为0的位置,次低位存到下标为1的位置……依次类推。

程序段如下:

for (i=0; a!=0; i++)
{
    m[i] = a % 10;
    a /= 10;
}
将数组中元素重新组合成一新数。拆分时变量a的最高位仍然存储在数组中下标最大的位置,根据“回文数”定义,新数中数据的顺序与a中数据的顺序相反,所以我们按照下标从大到小的顺序分别取出数组中的元素组成新数k,由几个数字组成一个新数时只需用每一个数字乘以所在位置对应的权值然后相加即可,在编程过程中应该有一个变量t来存储每一位对应的权值,个位权值为1,十位权值为10,百位权值为100……,所以可以利用循环,每循环一次t的值就扩大10倍。对应程序段如下:

for( ; i>0; i--)
{
    k += m[i-l] * t;
    t *= 10;
}
下面是完整的代码:


#include<stdio.h>
int main()
{
    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[1]~m[16]*/
        {
            m[i] = a % 10;
            a /= 10;
        }
        for(; i>0; i--)
        {
            k += m[i-1] * t;  /*t记录某一位置对应的权值 */
            t *= 10;
        }
        if(k == n*n)
            printf("%2d%10d%10d\n", ++count, n, n*n);
    }
    return 0;
}
</stdio.h>
运行结果:

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
    作者:大学生新闻网    来源:大学生新闻网
    发布时间:2025-03-11    阅读:
    扫一扫 分享悦读
  • C语言求勾股数
  • 所谓勾股数,是指能够构成直角三角形三条边的三个正整数(a,b,c)。
  • 03-11 关注:0
  • C语言求回文数
  • 将数组中元素重新组合成一新数。拆分时变量a的最高位仍然存储在数组中下标最大的位置
  • 03-11 关注:0
  • C语言水仙花数
  • 输出所有的“水仙花数”,所谓的“水仙花数”是指一个三位数其各位数字的立方和等于该数本身,例如153是“水仙花数”,因为:153 = 13
  • 03-11 关注:0
  • C语言求自守数
  • 自守数是指一个数的平方的尾数等于该数自身的自然数。
  • 03-11 关注:0
  • C语言求亲密数
  • C语言求亲密数
  • 如果整数A的全部因子(包括1,不包括A本身)之和等于B;且整数B的全部因子(包括1,不包括B本身)之和等于A
  • 03-11 关注:0
  • C语言求完数(完全数)
  • C语言求完数(完全数)
  • 如果一个数等于它的因子之和,则称该数为“完数”(或“完全数”)。例如,6的因子为1、2、3,而 6=1+2+3,因此6是“完数”。
  • 03-11 关注:1
  • C语言输出菱形(详解版)
主站蜘蛛池模板: 久久久精品人妻一区二区三区 | 999精品在线 | 亚洲娇小与黑人巨大交 | 中文字幕天堂久久精品 | 香港三级精品三级在线专区 | 欧美1区二区三区公司 | 日韩一区二区三区四区 | 逼逼好嫩视频 | 无码精品a∨在线观看中文 无码精品不卡一区二区三区 | 这里只有精品网 | 午夜爱爱影院 | 人人爽人人澡人人人妻 | av福利影院 | 久9这里精品免费视频 | 国产三级在线视频观看 | 高清国产露脸捆绑01经典 | 久久亚洲国产精品一区二区 | 天天看夜夜操 | 无码人妻少妇久久中文字幕 | 国产成人免费网站 | 国产福利视频深夜福利 | 色先锋资源久久综合5566 | 一插综合网 | 欧美重口另类在线播放二区 | 精品国产一区二区三区麻豆小说 | 精品欧美一区二区三区 | 国产3页| 久久久久香蕉 | 亚洲视频网| 国产国产精品人在线观看 | 色婷婷综合欧美成人 | 一级毛片在线完整免费观看 | 男女交性视频免费播放视频 | 久久爽久久爽久久免费观看 | 丝袜美腿亚洲一区二区图片 | 欧美内射深喉中文字幕 | 免费午夜影片在线观看影院 | 国产激情视频在线观看 | 狠狠躁18三区二区一区 | 欧美日韩永久久一区二区三区 | 国产av一区二区三区天堂综合网 |