最新消息:

信奥 基础题库 “求特殊自然数”

NOIP 少儿编程 1668浏览 0评论

题目描述:

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

输入格式:

无。

输出格式:

三行:
第一行是此自然数的十进制表示;
第一行是此自然数的七进制表示;
第一行是此自然数的九进制表示。

样例输入:

(无)

样例输出:

(不提供)

 

解题:

上过我前面基础课的同学都知道,对于一个三位数 i 来说,其百位、十位、个位数分别是:

百位  -  i/100;

十位  -  i%100/10;

个位  -  i%10。

 

其实,对于其它进制的自然数来说,这个规律仍然有效。例如,如果把 i 换算成7进制数,其百位、十位、个位数分别是:

百位  -  i/49;

十位  -  i%49/7;

个位  -  i%7。

 

最小的三位九进制数100,换成十进制数是9的2次方:81;最大的三位七进制数,换成十进制数是7的3次方-1:342。接下来尝试所有可能的自然数,直到找出符号条件的数字。

 

代码

#include<bits/stdc++.h>
using namespace std;
int main()
{
  for(int i=81;i<343;i++)
  {
    if(i/49==i%9 && i%49/7==i%81/9 && i%7==i/81) 
    {
      cout <<i<<endl;
      cout <<i/49<<i%49/7<<i%7<<endl;
      cout <<i/81<<i%81/9<<i%9<<endl;
    }
  }
  return 0;
}

 

转自公众号:
冉爸学堂

您必须 登录 才能发表评论!