编写程序,设n是一个四位数,它的9倍恰好是其反序数,求n的值28
发布网友
发布时间:2024-03-09 21:44
我来回答
共2个回答
热心网友
时间:2024-04-01 00:12
先写一个针对四位数反序数的函数,主函数里面用for循环遍历所有的四位数便可。
#include <stdio.h>
#include<stdlib.h>
#include<math.h>
int nixu (int a);
main()
{
int i,j;
for(i=1000;i<10000;i++)
{
int s=0; //存储四个数字的四次方和
if(nixu(i)==9*i)
printf("%d\n",i);
}
system("pause");
}
// 函数功能:实现4位数的逆序
int nixu (int a)
{
int i;
int c=0,s;
for(i=3;i>=0;i--)
{
s=a%10;
c+=s*pow(10,(double)i);
a=a/10;
}
return c;
}
热心网友
时间:2024-04-01 00:12
设N是一个四位数,它的9倍恰好是其反序数,求N。反序数就是将整数的数字倒过来形成的整数。例如:1234的反序数是4321。
*问题分析与算法设计
可设整数N的千、百、十、个位为i、j、k、l,其取值均为0~9,则满足关系式:
(i*103+j*102+10*k+l)*9=(l*103+k*102+10*j+i)
的i、j、k、l即构成N。
*程序说明与注释
#include<stdio.h>
int main()
{
int i;
for(i=1002;i<1111;i++) /*穷举四位数可能的值*/
if(i%10*1000+i/10%10*100+i/100%10*10+i/1000==i*9)
/*判断反序数是否是原整数的9倍*/
printf("The number satisfied stats condition is: %d\n",i);
/*若是则输出*/
}
*运行结果
The number satisfied states condition is:1089
参考资料:http://www.kuqin.com/tiku/20080424/7544.html