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

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

2017-08-10 14:48 204 查看

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;
}
}

}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  算法 设计 编程
相关文章推荐