| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 727 人关注过本帖
标题:请教一个回文数的问题
只看楼主 加入收藏
rmfish
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2006-10-17
收藏
 问题点数:0 回复次数:1 
请教一个回文数的问题

这是一个求回文数的程序 先输入 MAX_NUM 输出从0到MAX_NUM中用二进制表示和十进制都是回文数的整数 比如313 它的二进制表示为100111001 is_circle_num()是判断的函数 在红色数字的地方输入相关代码 (里面有我自己写的代码) 实现如上的功能 我想了一节课 想到最后还是实验失败 所以想求助于大家
#include <iostream.h>
#include <iomanip.h>
static int is_circle_num(int number,int radius);
int main()
{
int num,max_num;
cout<<"please input an integer( ):";
cin>>max_num;
for(num=0;num<max_num;num=num+1){
if(is_circle_num(num,10)==1&&is_circle_num(num,2)==1){
cout<<setw(6)<<num;
cout<<"is a circle number in decimal and binary system!\n";
}
}
return 0;
}

int is_circle_num(int number,int radius)
{
int left_num,right_num;
int max_power,left_power,right_power;
max_power=1;
while( 1(number>max_power这是我自己填的) ){
max_power=max_power*radius;
}
left_power=max_power;
right_power=radius;
while( 2(right_power<=left_power) ){
right_num= 3(number%radius) ;
left_num= 4(number/right_power) ;
if(right_num!=left_num) return 0;
right_power=right_power*radius;
left_power=left_power/radius;
}
return 1;
}
谢谢大家!

搜索更多相关主题的帖子: 回文 
2006-10-19 18:38
wangxiang
Rank: 2
等 级:新手上路
威 望:5
帖 子:376
专家分:0
注 册:2006-3-28
收藏
得分:0 
int is_circle_num(int number,int radius)
{
int left_num,right_num;
int max_power,left_power,right_power;
max_power=1;
while( max_power<=number ){
max_power=max_power*radius;
}
left_power=max_power;
right_power=radius;
while( left_power>right_power ){
right_num= =((number%right_power)*radius)/right_power;
left_num=((number*radius)/left_power)%radius;
if(right_num!=left_num) return 0;
right_power=right_power*radius;
left_power=left_power/radius;
}
return 1;
}

2006-10-21 00:44
快速回复:请教一个回文数的问题
数据加载中...
 
   



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

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