PKUonline judge 求特殊自然数

总时间限制: 
1000ms
内存限制: 
65536kB
描述

一个十进制自然数,它的七进制与九进制表示都是三位数,且七进制与九进制的三位数码表示顺序正好相反。编程求此自然数,并输出显示。

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


思路灰常简单,首先要保证这个数字在十进制,七进制,九进制中都是三位数。

那么七进制里最大的三位数肯定比十进制和九进制小,

同理,九进制里的三位数最小的比七进制大,

七进制最大的三位数是666转换成十进制就是342

九进制最小的三位数是100转换成十进制就是81

这样就确定了for循环的范围,

接着在循环里遍历这个区间里的每个十进制数,把每个数都分别转换成七进制和九进制,判断,最后输出就可以了

十进制转换成七进制就是,

先假设七进制的个十百位分别为ge,shi,bai

bai = 原数/7的平方,此时有一个余数1

shi = 余数1/7,此时有一个余数2

ge = 余数2/1

九进制思路一样,详细见代码啦

#include<iostream>
using namespace std;
int main(){
	int n;
	int ge,shi,bai;//7进制的个位十位百位 
	int one,two,thr;//9进制的个位十位百位 
	for(int i=81;i<=342;++i){
		//先转化为7进
		bai = i/49; shi = i%49;
		ge = shi%7; shi = shi/7;
		
		//转9
		thr = i/81; two = i%81;
		one = two%9; two = two/9;
		
		if(bai==one&&shi==two&&ge==thr) cout<<i<<endl<<bai<<shi<<ge<<endl<<thr<<two<<one<<endl; 
	}
	return 0;
}

输出是

248
503
305
顺便一提,直接按格式cout这三个数也可以过,诶嘿嘿~


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值