| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2606 人关注过本帖
标题:对称数 问题
只看楼主 加入收藏
firstlijia
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2005-10-8
收藏
 问题点数:0 回复次数:7 
对称数 问题
前不久遇到这样一个题 :输入一个数,判断他是不是对称数,例,121 ,12321,23432都是,但是要求 关键是不可以用字符处理。。哎。。想了半天没搞定。。 头大了。。。
搜索更多相关主题的帖子: 121 
2005-10-18 17:41
JavaBean
Rank: 1
等 级:新手上路
帖 子:40
专家分:0
注 册:2005-9-30
收藏
得分:0 
关键是不可以用字符处理。。 输入的数是不是可以很大啊。12345678912345678987654321987654321
2005-10-18 21:15
不走寻常路
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2005-9-26
收藏
得分:0 
有书上把那种数字称为回文,可以用除10取余的方法,从最低位开始,依次取出该数的各位数字,然后用最低位充当最高位,按反序重新构成新的数,比较与原数是否相等,若相等(因为是对称的,如果对称,反序输出则还是原数),则为回文数了,也是你说的对称数.你自己先按这个方法编一下吧!

学C不长,但很喜欢,梦想能成为编程一族! qq: 83461951 欢迎来指教!
2005-10-18 22:02
firstlijia
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2005-10-8
收藏
得分:0 
有点我还是不明白啊;比如 1234321
1234321%10     1
怎么取十位呢?
1234321%100  -1吗?
 

哦,有点明白了,我去试试

2005-10-19 09:40
firstlijia
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2005-10-8
收藏
得分:0 

哈哈,楼上的师兄我搞定了,谢谢 你的帮助。我把我写的程序贴上,你看看可以简化或者改善不。

#define N 100 main() { int a[N],num,i; long e,n,b; printf("please input n:\n"); scanf("%ld",&n); e=n; for(i=1;(n-10)>0;i++) {a[i]=n%10; n=(n-a[i])/10;} num=i; a[num]=n; for(i=num;i>0;i--) printf("a[%d]=%d\n",i,a[i]); getch(); n=0; for(i=1;i<num;i++) n=(n+a[i])*10; b=n+a[num]; printf("%ld\n",b); if(e==b) printf("OK,it is DCS"); else printf("error,it isnot DCS"); getch();}


2005-10-19 14:00
不走寻常路
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2005-9-26
收藏
得分:0 
我用C++编了一下,好像简单点,你自己转为C吧.
#include &lt;iostream&gt;
using namespace std;
void main()
{
bool fun(long n);        //用bool型来返回真假
long n;
cin&gt;&gt;n;
if(fun(n))
cout&lt;&lt;"Yes!"&lt;&lt;endl;
else
cout&lt;&lt;"No!"&lt;&lt;endl;
}
bool fun(long n)
{
 long i,m;
 i=n;m=0;
 while(i)          //这个while()你分析一下,逐个取数并反序输出就是靠这个循环
 {
  m=m*10+i%10;
  i=i/10;
 }
 return (m==n);
}
这样就在于ok 了!!!!

学C不长,但很喜欢,梦想能成为编程一族! qq: 83461951 欢迎来指教!
2005-10-19 22:18
firstlijia
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2005-10-8
收藏
得分:0 
师兄,我是通信专业的,自己在学习C,C++不会,C++好学吗?

2005-10-20 09:43
不走寻常路
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2005-9-26
收藏
得分:0 
       C++是在C上发展起来的,我也不知道C++好不好学,因为我也是刚学C++,而且C也学得不怎么样.上面的改为C很简单的,把bool改为int 再改一个上面的头文件就行了,还有就是输入输出的表示法不一样.

学C不长,但很喜欢,梦想能成为编程一族! qq: 83461951 欢迎来指教!
2005-10-20 13:21
快速回复:对称数 问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.020336 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved