有关三重回文数

来源:百度知道 编辑:UC知道 时间:2024/06/28 23:56:39
网上找的一个有关求三重回文数判断11--999三重回文数的程序
但本人水平有限,看不懂,有哪位高手可以帮忙下哈
#include <stdio.h>
#include <string.h>
int huiwen(int x);
void main(){
int m;
for (m=11;m<1000;m++){
if(huiwen (m)&&huiwen(m*m)&&huiwen(m*m*m)){
printf ("%d ",m);
putchar(10);
}
}
}

int huiwen (int x){
int a[100];
int temp;
int i;
int length=0;
temp=x;
while(x!=0){
x/=10;
length++;
}
x=temp;
for (i=0;i<length;i++){
a[i]=x%10;
x/=10;
}
for (i=0;i<length/2;i++){
if(a[i]!=a[length-1-i]){
return 0;
}
}
return 1;

有哪位仁兄能帮忙加一下注释啊
还有流程图!!!!!!!!!我把仅有的30分给了~~~~
谢谢哈~~~~~~~~~~~~~~~~~~~~
感激不尽~~~
麻烦再绘制出总体功能模块图,并对每个模块进行功能说明,指出解决方法及相关变量和参数的说明等。
谢了

检测11-1000中本身、平方、立方都是回文数的数
#include <stdio.h>
#include <string.h>
int huiwen(int x);
void main(){
int m;
for (m=11;m<1000;m++){
//m的值从11到999,将每个m带入试验是否是三重回文数
if(huiwen (m)&&huiwen(m*m)&&huiwen(m*m*m)){
//判断m m*m m*m*m是否都是回文数
printf ("%d ",m);
//若是,打印出m
putchar(10);
//回车
}
}
}

int huiwen (int x){
//此函数的功能是检测一个数是否是回文数
int a[100];
int temp;
int i;
int length=0;
temp=x;
//将temp设为要检验的数
while(x!=0){
x/=10;
length++;
//检测被检测数的位数
}
x=temp;
//将x重置为原数
for (i=0;i<length;i++){
a[i]=x%10;
x/=10;
//将x的每一位放置进a这个数组
}
for (i=0;i<length/2;i++){
//从第一位检测到中间一位
//比如12345678就从1检测到4
//比如123456789也从1检测到4
//比如1234567890从1检测到5
if(a[i]!=a[length-1-i]){
//如果a中的第i位与与它对称的那一位不相等,则不是回文数,返回0
return 0;
}
}return 1;