c++:编一函数int f(int n),功能为判断一个整数n是否为回文数

编一函数intf(intn),功能为判断一个整数n是否为回文数(回文是指正读、倒读都一样的数,如121,2332都是回文数),若是,函数的返回值为1,否则为0。在主函数中... 编一函数int f(int n),功能为判断一个整数n是否为回文数(回文是指正读、倒读都一样的数,如121,2332都是回文数),若是,函数的返回值为1,否则为0。在主函数中统计并输出四位正整数中回文数的个数。 展开
 我来答
985967518
推荐于2018-02-27 · 知道合伙人教育行家
985967518
知道合伙人教育行家
采纳数:18027 获赞数:109866
14年本科毕业于河南理工大学,至今就读于河南理工大学攻读硕士学位,从事编程学习已有5年。

向TA提问 私信TA
展开全部
//参考代码如下:
#include <stdio.h>
int f(int n)//判断是否是回文数,是返回1,否则返回0
{
int t=0,m=n;
while(m)//如果m不等于0,执行下面循环,否则跳出循环 (求这个数各位上数字反向排列的数 ) 
{
t*=10;
t+=m%10;
m/=10;
}
return t==n;//如果这个数各位数字反向排列所得数依然等于该数,该数就是回文数 
}
int main(){
int i,n;
for(i=1000,n=0;i<10000;i++)//计算1000-10000直接的回文数,如果是打印出来 
{
if(f(i)){
printf("%d\n",i);
n++;
}
}
printf("count:%d\n",n);//输出总的回文数 
}
匿名用户
2012-01-01
展开全部
函数如下:
int f(int n)
{
int a[100] = {0};
int top = -1;

while (n > 0) //提取各位数字
{
a[++top] = n % 10;
n /= 10;
}

int left = 0;
while (left < top)//判断是否回文
{
if (a[left++] != a[top--])
return 0;
}
return 1;
}

完整程序如下:
#include <iostream>
using namespace std;

int f(int n)
{
int a[100] = {0};
int top = -1;

while (n > 0) //提取各位数字
{
a[++top] = n % 10;
n /= 10;
}

int left = 0;
while (left < top)//判断是否回文
{
if (a[left++] != a[top--])
return 0;
}
return 1;
}

int main()
{
int i=0,count=0;

cout<<"四位正整数中回文数有: "<<endl;
for(i=1000;i<10000;i++)
if(f(i))
{
cout<<i<<"\t";
count++;
}

cout<<"共有"<<count<<"个。"<<endl;

return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
miniappdGlI9NdxDrHlA
2012-01-01 · TA获得超过1521个赞
知道小有建树答主
回答量:431
采纳率:0%
帮助的人:486万
展开全部
#include <iostream>
using namespace std;
int f(int n){
int m,t,sum=0;
m=n;
while(m>0){
t=m%10;
sum=sum*10+t;
m/=10;
}
return sum==n;
}

main(){
int i,n=0;
for(i=1000;i<9999;i++)
if(f(i)==1){
n++;
cout << i << ' ';
}
cout << endl;
cout << "整数个数 " << n << endl;
}
sorry,调试了一下
追问
不对- -
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ssilspro
推荐于2017-11-24 · TA获得超过2625个赞
知道大有可为答主
回答量:1148
采纳率:0%
帮助的人:1718万
展开全部
#include <stdio.h>
int f(int n)
{
int t=0,m=n;
while(m)
{
t*=10;
t+=m%10;
m/=10;
}
return t==n;
}
int main(){
int i,n;
for(i=1000,n=0;i<10000;i++)
{
if(f(i)){
printf("%d\n",i);
n++;
}
}
printf("count:%d\n",n);
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
sxt19840210
2012-01-01 · TA获得超过1517个赞
知道小有建树答主
回答量:751
采纳率:0%
帮助的人:798万
展开全部
#include<stdio.h>
#include<string.h>
int f(int n)
{
char a[32];
int i,n;
sprintf(a,"%d",n);
n=strlen(a);
for(i=0,n-=1;i<=n;i++,n--)
{
if(a[i]!=a[n])
return 0;
}
return 1;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式