4:求特殊自然数(程序设计与算法(一)第四周测验(2017夏季))

来源:互联网 发布:电脑开机进不了windows 编辑:程序博客网 时间:2024/05/16 09:25

4:求特殊自然数

总时间限制: 1000ms 内存限制: 65536kB
描述
一个十进制自然数,它的七进制与九进制表示都是三位数,且七进制与九进制的三位数码表示顺序正好相反。编程求此自然数,并输出显示。

输入
无。
输出
三行:
第一行是此自然数的十进制表示;
第一行是此自然数的七进制表示;
第一行是此自然数的九进制表示。
样例输入
(无)
样例输出
(不提供)

#include<iostream>#include<math.h>using namespace std;//http://cxsjsxmooc.openjudge.cn/2017t1summerw4/4///一定要注意判断是否满足进制的要求,比如7进制中不能出现大于等于7的数字 int ston(int x){    //要判断i和i是否是7或者9进制,然后求表示顺序相反的九进制数     int y=0;    while(x>0){        //cout<<x%10<<endl;        if(x%10>=7)return -1;        else{            y=y*10+x%10;            x=x/10;        }    }     //cout<<y<<endl;    return y;}int f(int x,int b){    int y=0;    for(int i=0;i<3;i++){        y=y+pow(b,i)*(x%10);        x=x/10;    }    return y;}int main(){    int j,k1,k2;    for(int i=100;i<=666;i++){        j=ston(i);        if(j==-1)continue;        else{            k1=f(i,7);//b进制转10进制数             k2=f(j,9);            //cout<<k1<<" "<<k2<<endl;            if(k1==k2){                cout<<k1<<endl<<i<<endl<<j<<endl;                break;            }        }    }}
阅读全文
0 0
原创粉丝点击