请大家帮忙填空啊!~~
以下程序的功能是输入一个整数max_num,输出从0到max_num中用二进制表示和十进制表示都是回文的整数。其中函数is_circle_num( )用于判断一个数在某个进制表示下是否回文数。例如,整数313就是该程序输出的一个数,因为它的二进制表示为100111001。请填空:
include <stdio.h>
static int is_circle_num(int number,int radius);
main()
{
int num,max_num; clrscr();
scanf("%d",&max_num);
for(num=0;num<max_num;num++){
if((is_circle_num(num,10)==1)&&(is_circle_num(num,2)==1)){
printf("%d is a cricle number in 10 and 2!\n",num);
}
}
}
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 ){
max_power*=radius;
}
left_power=max_power;
right_power=radius;
while( 2 ){
right_num=________3________
left_num=________4_________
if(right_num!=left_num) return 0;
right_power=right_power*radius;
left_power=left_power/radius;
}
return 1;
}
问题点数:20、回复次数:5Top
1 楼sayo(你敢笑我?!信不信我娶你!)回复于 2004-12-03 13:52:40 得分 0
up
都忘了怎么算回文了Top
2 楼flg_inwind(风亦飞)回复于 2004-12-03 19:08:54 得分 0
123
算法很好!!Top
3 楼260005065(宁独遗与世,亦当皓首穷经,但有所得,无悔无怨。)回复于 2004-12-03 19:32:03 得分 20
number/max_power
left_power>right_power
number%right_power/(right_power/radius);
number/(left_power/radius)%radius;Top
4 楼bjstcm(快毕业了~~~)回复于 2004-12-03 19:44:47 得分 0
楼上的正确
Top
5 楼zxx110(新)回复于 2004-12-03 19:58:56 得分 0
max_power*radius<=number
left_power<right_power
(number/right_power)%radius
(number/left_power)%radius
待验证Top




