[题] 求特殊自然数 #十进制转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;
}
相关推荐
啊吧怪不啊吧16 分钟前
C++之基于正倒排索引的Boost搜索引擎项目usuallytool部分代码及详解
开发语言·c++·搜索引擎·项目
FakeOccupational37 分钟前
【电路笔记 通信】数字混频(采样做频谱搬移)+频率混叠(aliasing)公式证明+带通采样示例
笔记
漫雾_4 小时前
两个强制结束进程的方法
c++·驱动开发·安全
眼镜哥(with glasses)4 小时前
Ollama 在 Windows 系统下修改安装路径和模型存储路径的官方指引——【大模型】01-27笔记
笔记
HAPPY酷4 小时前
C++ 多线程实战三板斧
java·开发语言·c++·技术美术
fpcc4 小时前
并行编程实战——CUDA编程的Tile
c++·cuda
爱学java的ptt5 小时前
场景题:设计排行榜
笔记·面试
じ☆冷颜〃5 小时前
随机微分层论:统一代数、拓扑与分析框架下的SPDE论述
笔记·python·学习·线性代数·拓扑学
_风华ts6 小时前
C++ 函数封装与绑定
c++·函数指针·函数封装
ShineWinsu6 小时前
对于C++中stack和queue的详细介绍
开发语言·数据结构·c++·面试·stl·queue·stack