题目1064:反序数

来源:互联网 发布:快屏网络收购叫停 编辑:程序博客网 时间:2024/04/26 11:18
题目描述:

设N是一个四位数,它的9倍恰好是其反序数(例如:1234的反序数是4321)
求N的值

输入:

程序无任何输入数据

输出:

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

样例输入:
样例输出:

代码:

#include <stdio.h>#include <math.h>int main() {    int i,j;    for(i=1000;i<1200;i++) {        int n = i * 9;        if(n > 9999)            break;        int x,y;        bool equal = true;        int tmp = i;        for(j=0;j<4;j++) {            x = (int) n / pow(10,3-j);            y = tmp % 10;            if(x == y) {                float p = pow(10,3-j);                int fuck = (int) p;                n = n - fuck * x;                tmp /= 10;            }            else {                equal = false;                break;            }        }        if(equal == true)            printf("%d\n",i);    }    return 0;}                        
很简单的一个题,不过没有注意double 与 Int 型的转换,导致出现错误。

函数pow(x,y) 返回的是double,而不是int。

int x = pow(10,2)   x会变成了99。

还是先将pow的结果变为Int再赋值吧。

原创粉丝点击