题目描述 定义一个函数,判断数x是否为回文数,如果是则返回1,否则返回0。在主函数中调用该函数,求

题目描述
定义一个函数,判断数x是否为回文数,如果是则返回1,否则返回0。在主函数中调用该函数,求1~n的回文数的个数。(n从键盘输入)

输入
每行输入一个正整数n。(1<=n<=100000)

输出
对应输入,每行输出一个结果:即1-n中回文数的个数。

样例输入
9
44
55

样例输出
9
13
14

第1个回答  2014-11-27
#include <iostream>
using namespace std;
int judge(int n){
int a[15]={0};
int b[15]={0};
int z=0;
while(n!=0)
{
z++;
a[z]=n%10;
n/=10;
}
for(int i=1;i<=z;i++)
{
b[i]=a[z-i+1];
if(a[i]!=b[i])
return 0;
}
return 1;
}
int main(){
int n;
cin>>n;
int sum=0;
for(int i=1;i<=n;i++)
sum+=judge(i);
cout<<sum<<endl;
return 0;
}
这是c++的代码,望采纳追问

为什么只能输入一行呢

追答

要输入多个的?那我改下就好。
#include
using namespace std;
int judge(int n){
int a[15]={0};
int b[15]={0};
int z=0;
while(n!=0)
{
z++;
a[z]=n%10;
n/=10;
}
for(int i=1;i>n){
int sum=0;
for(int i=1;i<=n;i++)
sum+=judge(i);
cout<<sum<<endl;
}
return 0;
}
有什么问题都可以问

追问

啊偶 好像只能总c不能用c++ 我们还没学

追答

....用c而已。。。改下输入输出就好了。。。下次麻烦先在题目里说下用什么语言。
#include
int judge(int n){
int a[15]={0};
int b[15]={0};
int z=0;
while(n!=0)
{
z++;
a[z]=n%10;
n/=10;
}
for(int i=1;i<=z;i++)
{
b[i]=a[z-i+1];
if(a[i]!=b[i])
return 0;
}
return 1;
}
int main(){
int n;
while(scanf("%d",&n)){
int sum=0;
for(int i=1;i<=n;i++)
sum+=judge(i);
printf("%d\n",sum);
}
return 0;
}

本回答被提问者采纳
第2个回答  2014-11-27
对不起,我初二,还没学函数追答

不过我看到过

现在不知道做了

相似回答