您的位置:首页 > 编程语言

九度oj-1064-反序数

2017-06-25 20:31 225 查看
题目描述:
设N是一个四位数,它的9倍恰好是其反序数(例如:1234的反序数是4321)

求N的值

输入:
程序无任何输入数据

输出:
输出题目要求的四位数,如果结果有多组,则每组结果之间以回车隔开

样例输入:
样例输出:

AC1-中规中矩的写法,但是感觉麻烦,而且稍不注意还容易写错


#include <stdio.h>
int main(){

int i,j,temp;
int n[4]={0};
int nine[4]={0};

for(i=1010;i<1112;i++){
n[0]=i/1000;
n[1]=i%1000/100;
n[2]=i%1000%100/10;
n[3]=i%1000%100%10;

temp=9*i;
nine[0]=temp/1000;
nine[1]=temp%1000/100;
nine[2]=temp%1000%100/10;
nine[3]=temp%1000%100%10;

if(n[0]==nine[3] && n[1]==nine[2] && n[2]==nine[1] && n[3]==nine[0]) printf("%d\n",i);

for(j=0;j<4;j++){
n[j]=0;
nine[j]=0;
}

}
return 0;
}
/**************************************************************
Problem: 1064
User: 人气呆毛选手
Language: C
Result: Accepted
Time:0 ms
Memory:908 kb
****************************************************************/AC2--查了一下发现了这种洋气的写法,每次取出最低位,然后倒着把依次取出的最低位重新加起来,就成了反序数。
#include <stdio.h>
int main(){

int i,m,n;

for(i=1000;i<10000;i++){

n=i;
m=0;
while(n){
m=m*10+n%10;
n/=10;
}
if(m==9*i) printf("%d\n",i);
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  九度oj 编程