注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

浩瀚星云

上善若水 厚德载物<学习版>

 
 
 

日志

 
 

[收藏]回文数判断  

2008-12-23 21:25:11|  分类: C语言 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

编写一个程序判定用户输入的正整数是否是"回文数",所谓回文数是指正读反读都相同的数.

陵轹发表http://www.programfan.com/club/showbbs.asp?id=134790

#include

int main()

{

 int m, i,j = 0;

 scanf("%d",&m);

 i = m;

 while(m > 0){

  j = j * 10 + m % 10;

  m /= 10;

 }

 if(i == j)printf("Is");

 else printf("NO");

 return 0;

};

***************************

http://www.programfan.com/club/showbbs.asp?id=135071

回文数是从左边往右读或者从右边往左读都一样的数

比如 1, 121,12321,33433,123454321

编程求从1开始的第n个回文数

f(1) = 1

f(2) = 2

.

.

.

f(9)=9

f(10)=11

f(11)=22

.

.

.

f(24)=151

f(10000)=9001009

.......

输入一个正整数 n

输出这个回文数。

pcboyxhy的答案(不懂~~~~)

#include <iostream.h>

int main(int argc, char *argv[])

{

  long long n, k, l;

  while(cin>>n)

  {

      if(!n)

          break;

      for(l=18; n>l; l*=10) n-=l;

      l/=2;k=1;

      if(n>l){ k=0; n-=l;}

      l/=9; n+=l-1;

      l=n;

      if(k) n/=10;

      while(n>0) { l*=10; l+=n%10; n/=10; }

      cout<<l<<endl;

  }    

  return 0;

}

  评论这张
 
阅读(898)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017