[题] 求特殊自然数 #十进制转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;
}
相关推荐
电商API_1800790524713 小时前
如何实现批量化自动化获取淘宝商品详情数据?爬虫orAPI?
大数据·c++·爬虫·自动化
liurendonews13 小时前
刘韧微积分笔记之四:手机里的微积分
笔记·智能手机
t***54413 小时前
如何确认 Clang 是否在 Dev-C++ 中成功应用
java·开发语言·c++
楚Y6同学14 小时前
QT之下拉框自动填充功能
开发语言·c++·qt·qt开发技巧·串口下拉填充·网口下拉填充
mjhcsp14 小时前
根号快速计算牛顿迭代法
开发语言·c++·算法·迭代法
小小de风呀14 小时前
de风——【从零开始学C++】(二):类和对象入门(一)
开发语言·c++
浅念-14 小时前
LeetCode 模拟算法:用「还原过程」搞定编程题的入门钥匙
开发语言·c++·学习·算法·leetcode·职场和发展·模拟
澈20714 小时前
C++面向对象编程:从封装到实战
开发语言·c++
无敌昊哥战神14 小时前
【LeetCode 491】递增子序列:不能排序怎么去重?一文讲透“树层去重”魔法!
c语言·c++·python·算法·leetcode
Queenie_Charlie14 小时前
关于二叉树
数据结构·c++·二叉树