c语言程序设计编求回文数的函数

2025-03-26 15:19:49
推荐回答(3个)
回答1:

#include

int main(){

int m[16], n, i, t, count=0;

long unsigned a, k;

printf("No.    number     it's square(palindrome)\n");

for( n=1; n<256; n++ )  /*穷举n的取值范围*/

{

k=0; t=1; a=n*n;  /*计算n的平方*/

for( i=0; a!=0; i++ )  /*从低到高分解数a的每一位存于数组m[1]~m[16]*/

{
m[i] = a % 10;

a /= 10;

}

for(; i>0; i--)

{

k += m[i-1] * t;  /*t记录某一位置对应的权值 */

t *= 10;}

if(k == n*n)printf("%2d%10d%10d\n", ++count, n, n*n);

}

return 0;

}

扩展资料:

C语言在编写的时候需要说明的是:

1、一个C语言源程序可以由一个或多个源文件组成。 

2、每个源文件可由一个或多个函数组成。

3、一个源程序不论由多少个文件组成,都有一个且只能有一个main函数,即主函数。是整个程序的入口。

4、源程序中可以有预处理命令(包括include 命令,ifdef、ifndef命令、define命令),预处理命令通常应放在源文件或源程序的最前面。

5、每一个说明,每一个语句都必须以分号结尾。但预处理命令,函数头和花括号“}”之后不能加分号。(结构体、联合体、枚举型的声明的“}”后要加“ ;”)。

6、标识符,关键字之间必须至少加一个空格以示间隔。若已有明显的间隔符,也可不再加空格来间隔。

参考资料:

百度百科-回文数

回答2:

程序如下:

#include "stdio.h"
int main()
{
int u,m;
int sum=0;
printf("请输入要判断的数u=");
scanf("%d",&u);
    m=u;
    while(m)
{
sum=sum*10+m%10;
m=m/10;
}
if(sum==u)
printf ("u是回文数");
else
printf("u不是回文数");
printf("\n");
    return 0;
}

程序运行结果:

假设输入一回文数12321

回答3:

参考代码如下:
#include
int check(int *data,int n){
int i,j;int x=0,y=0;
while(n!=0){*(data+y)=n%10;n=n/10;y++;}
*(data+y)='\0';
for(i=0,j=y-1;i<=j;i++,j--){
if(*(data+i)==*(data+j)){return 1;}}
return 0;
}

void main(){
int i,x,a[10],num=0;
printf("请输入一个正整数:");
scanf("%d",&x);for(i=1;i<=x;i++) num=num+separate(a,x);
printf("%d\n",num);
}