C++求大神帮忙!!

最变态的一题!求大神帮忙,写完之后记得注释!!
2024-11-21 23:39:53
推荐回答(3个)
回答1:

每一行显示一个回文数,最后内存会溢出,只能得到后面的结果,前面的结果会溢出

#include
int main()
{
long i,s,t,sum = 0,n;
printf("输入:");
scanf("%d",&n);
for(i = 1; i < n; i++)
{
s = 0;
t = i;
while(t > 0)
{
s = s*10 + t % 10;
t /= 10;
}
if(i == s)
{
printf("%-8d",i);
sum++;
}
}
printf("总共有%d个回文数\n",sum);
return 0;
}

回答2:

#include"stdio.h"
int rev( int n ) //得到逆序数
{
int x=0;
while(n!=0)
{
x=x*10+n%10; //取n的个位,累加到x上,自己体会
n/=10; //n缩小10倍,保证下次依然取个位数
}
return x ; //返回逆序结果
}
int main()
{
int n,i,cnt=0;
scanf("%d",&n);
for( i=1;i<=n;i++ )
{
if ( i==rev(i) ) //如果i和它的逆序数相同,就是回文数
{
printf("%d\n" , i );
cnt++ ; //计数器加1
}
}
printf("%d\n" , cnt ); //输出个数
return 0;
}

回答3:

#include
using namespace std;
int main()
{
int f(int n);
int k=0;
for(int i=1;i<1000000;i++)
{
if(f(i)==i)//判断是不是回文数
{
k++;
cout<}
}
cout<return 0;
}
int f(int n)
{
int b=0;
while(n)//这个循环用于把一个数逆序存放
{
b=n%10+b*10;
n=n/10;
}
return b;
}
//这样可以吗 使用C++写的哦