首页 > 试题广场 >

进制均值

[编程题]进制均值
  • 热度指数:16186 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
尽管是一个CS专业的学生,小B的数学基础很好并对数值计算有着特别的兴趣,喜欢用计算机程序来解决数学问题,现在,她正在玩一个数值变换的游戏。她发现计算机中经常用不同的进制表示一个数,如十进制数 123 表达为 16 进制时只包含两位数 7、11(B),用八进制表示为三位数 1、7、3,按不同进制表达时,各个位数的和也不同,如上述例子中十六进制和八进制中各位数的和分别是 18 和 11 。 小B感兴趣的是,一个数 A 如果按 2 到 A-1 进制表达时,各个位数之和的均值是多少?她希望你能帮她解决这个问题? 所有的计算均基于十进制进行,结果也用十进制表示为不可约简的分数形式。

数据范围:

输入描述:
输入中有多组测试数据,每组测试数据为一个整数A


输出描述:
对每组测试数据,在单独的行中以X/Y的形式输出结果。
示例1

输入

5
3

输出

7/3
2/1
头像 laglangyue
发表于 2020-07-30 20:59:20
枚举所有进制的和cnt,以及进制个数n-2进制转换:除法倒排求cnt和n-2的最大公约数,辗转相除法,递归法理解起来更为容易,并且容易优化最小公倍数为x*y/gcd(x,y) import java.util.*; public class Main{ //以y为进制的数位和 pu 展开全文
头像 重生之我要当分子
发表于 2025-01-01 00:40:48
解题思路 这是一个进制转换和分数计算问题。关键点: 进制转换: 对于每个进制 (2到 ) 将 转换为 进制 计算各位数字之和 分数化简: 总和除以进制个数得到平均值 需要化简为最简分数 最大公约数: 使用辗转相除法求GCD 用于分数化简 代码 cpp ja 展开全文
头像 17c89
发表于 2024-04-01 14:00:59
import java.util.Scanner; /** * JD8 进制均值 * @author d3y1 */ public class Main { public static void main(String[] args){ Scanner in = ne 展开全文