发布网友 发布时间:2022-04-23 13:49
共2个回答
热心网友 时间:2022-04-23 15:19
判断回文数的思路是:
传入一个数,然后依次从个位开始取一直到最高位
然后每一位先乘以10,再加上后一位数乘以10,结果乘以10再加后一位乘以10,如此反复,最后结果末尾肯定多了一个0,然后再将这个和除以10,得到反转后的数
最后判断反转后的数是否等于原数,如果等于就是回文数,如果不等于就不是回文数
#include <iostream>
using namespace std;
int isHuiWen(int num){
int temp=0,sum=0,bFlag=0;
temp=num; //保存数
//将原数反转
while(temp!=0){
sum=(temp%10+sum)*10;
temp/=10;
}
//因为结果后面多了一个0,所以要除以10
sum/=10;
return bFlag=num==sum?1:0; //返回值的判断我使用三元运算符
}
void main(){
int i,count=0;
cout<<"10到200之间的回文数有:"<<endl;
for(i=10;i<=200;i++){
if(isHuiWen(i)==1){
count++;
if(count%5==0||count==19){//经过测试,只有19个数,所以换行的判断条件加了一个等于19
cout<<i<<endl;
}else{
cout<<i<<",";
}
}
}
}
热心网友 时间:2022-04-23 16:37
先2到200的数遍历一边用for循环