-
题目描述:
-
设N是一个四位数,它的9倍恰好是其反序数(例如:1234的反序数是4321)
求N的值
-
输入:
- 程序无任何输入数据
-
输出:
输出题目要求的四位数,如果结果有多组,则每组结果之间以回车隔开
题目是关于数字的提取与处理,注意到N是一个四位数,所以N的9倍(N*9)也是一个四位数,所以N最大为1111,最小是1000。题目就显得很简单了。下面给出比较简洁的方法。
#include "stdio.h"
#include "string.h"
int main()
{
int i,j;
for(i=1000;i<=1111;i++)
{
int temp=i*9;
char cha[5],chb[5];//这里的不能申请为cha[4],chb[4],想想为什么?
sprintf(cha,"%d",i); //数字转化成字符
sprintf(chb,"%d",temp);
int flag=1;
for(j=0;j<4;j++)
{
if(cha[j]!=chb[4-1-j])
{
flag=0;break;
}
}
if(flag) printf("%d",i);
}
}
输出:
1089