[题] 求特殊自然数 #十进制转n进制

题目

NOI / 1.5编程基础之循环控制-25:求特殊自然数

题解

首先,不可能无限穷举

范围限定:七进制与九进制表示都是三位数

最大:888(9) = 728(10)

最小:100(7) = 49(10)

然后就是十进制转x进制的问题

n对xa取模,就是对应xa位上的数字,因为模出来的数不足x^a

然后n/=xa;表示n将对x(a+1)进行取模

重复此操作直至n=0。

代码

cpp 复制代码
#include<bits/stdc++.h>
using namespace std;
//把n转换为x进制下的数 
int turn(int n, int x) {
	int ans = 0, a1 = 1;
	while(n) {
		ans += (n % x) * a1;
		n /= x; 
		//要进位咯 
		a1 *= 10;
	}
	return ans;
}
int main(){
	int n7, n9;
	for(int i = 49; i <= 728; i ++) {
		n7 = turn(i, 7);
		n9 = turn(i, 9);
		if(n7 / 100 == n9 % 10 && (n7 /10) % 10 == (n9 /10) % 10 && n9 / 100 == n7 % 10) {
			printf("%d\n%d\n%d", i, n7, n9);
			break;
		}
	}
	return 0;
}
相关推荐
Radan小哥18 分钟前
Docker学习笔记—day007
笔记·学习·docker
Rsingstarzengjx43 分钟前
PS 笔记1
笔记
㱘郳1 小时前
软考软件设计师笔记
笔记·软件工程
嵌入式学习者。1 小时前
Eplan自学笔记1
笔记
月夜的风吹雨1 小时前
【封装红黑树】:深度解析map和set的底层实现
c++·set·map·封装
列逍1 小时前
深入理解 C++ 智能指针:原理、使用与避坑指南
开发语言·c++
C语言小火车2 小时前
C/C++ 指针全面解析:从基础到进阶的终极指南
c语言·开发语言·c++·指针
风123456789~2 小时前
【OceanBase专栏】OceanBase 外部表实验
数据库·笔记·oceanbase
wefg12 小时前
【C++】特殊类设计
开发语言·c++
帅中的小灰灰3 小时前
C++编程原型设计模式
开发语言·c++