鱼C论坛

 找回密码
 立即注册
查看: 3918|回复: 11

求解回文数

[复制链接]
发表于 2011-3-6 13:04:16 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 hevv 于 2011-3-7 15:52 编辑

所谓回文数是从左至右与从右至左读起来都是一样的数字,如:121是一个回文数。编写程序,求出100—900之间的所有回文数
#include<iostream>
using namespace std;
int main()
{
int Hnum,Tnum,Rnum;         
for(Hnum=100;Hnum<=900;++Hnum)
{   
     Rnum=Hnum;
     Tnum=0;            //记得每次循环后把该值置零!
         do
         {                       
        Tnum=Tnum*10+Rnum%10;      //这里面不可以直接用hnum参与运算,否则它的值就会被改变,导致循环错误!
         Rnum/=10;

     } while(Rnum);

      if(Hnum==Tnum)
    cout<<Hnum<<" ";
}
return 0;
}
这个程序看似简单,但是do-while语句里面的代码却很经典(这个不是我的原创)!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-3-6 20:01:03 | 显示全部楼层
汗……
是在提问不?还隐藏~~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-3-7 15:51:28 | 显示全部楼层
回复 2# raotf


    不隐藏就不隐藏吧!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-4-9 17:15:03 | 显示全部楼层
难道不觉得 程序没有执行效率吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-4-9 18:33:30 | 显示全部楼层
本帖最后由 hevv 于 2011-4-9 19:11 编辑

回复 4# LNH_Sniper


    那你给点意见!怎么修改
  还有 我这个 程序主要是在说明:
do
         {                       
        Tnum=Tnum*10+Rnum%10;      
         Rnum/=10;
        }while(Rnum)!
    这段代码 是我最为喜欢的地方!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2013-3-25 16:28:59 | 显示全部楼层
没看懂,惭愧惭愧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2013-3-25 16:42:18 | 显示全部楼层
  1. #include<stdio.h>
  2. #include<math.h>
  3. void main()
  4. {
  5.         int i=1,j=1;
  6.         for(int k=1;k<=20;k++)
  7.         {
  8.                 printf("%d %d\n",i,j);
  9.                 i=i+j;
  10.                 j=i+j;
  11.         }
  12. }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2018-6-6 17:11:02 | 显示全部楼层
while循环表示看不懂
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-1 17:26:56 | 显示全部楼层
  1. 厉害的{:5_108:}
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-1 17:27:35 | 显示全部楼层

斐波那契数列! 我竟然看懂了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-1 17:29:41 | 显示全部楼层
  1. #include<stdio.h>
  2. int main(void)
  3. {
  4.         int i,j,k;
  5.         for(k = 0;k < 10;k++)
  6.         {
  7.                 printf("%d %d\n",i,j);
  8.                 i = i + j;
  9.                 j = i + j;
  10.         }
  11. }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-1 17:36:11 | 显示全部楼层
  1. #include<stdio.h>
  2. int main()
  3. {
  4. int a,b,c,count = 0;         
  5. for(a=100;a<=900;++a)
  6. {   
  7.      c=a;
  8.      b=0;            //记得每次循环后把该值置零!
  9.          do
  10.          {                       
  11.                 b=b*10+c%10;      //这里面不可以直接用a参与运算,否则它的值就会被改变,导致循环错误!
  12.                  c/=10;

  13.              } while(c);

  14.       if(a==b)
  15.       {
  16.               count ++;
  17.               printf("%-5d",a);
  18.               if(!(count % 10))
  19.               {
  20.                       putchar('\n');
  21.                 }
  22.           }
  23. }
  24. return 0;
  25. }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-19 11:44

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表