您的位置:首页 > 理论基础

尽管是一个CS专业的学生,小B的数学基础很好并对数值计算有着特别的兴趣,喜欢用计算机程序来解决数学问题。现在,她正在玩一个数值变换的游戏。她发现计算机中经常用不同的进制表示同一个数,如十进制数123表达为16进制时只包含两位数7、11(B),用八进制表示时为三位数1、7、3。按不同进制表达时,各个位数的和也不同,如上述例子中十六进制和八进制中各位数的和分别是18和11。

2017-05-14 14:10 961 查看

include "stdafx.h"

#include<iostream>
#include<vector>
#include <algorithm>
#include<iomanip>
#include<string>
#include<numeric>
#include<set>

using namespace std;

int toNum(int num, int i)
{
int sum = 0;
while (num!=0)
{
sum += (num%i);
num = num / i;
}
return sum;
}

void getNum(int n, int m)
{
for (int i = m; i > 1; i--)
{
if (n%i == 0 && m%i==0)
{
n = n / i;
m = m / i;
break;
}
}
cout << n << "/" << m << endl;
}

int main()
{
int n;
while (cin>>n)
{
float sum = 0;
for (int i = 2; i < n; i++)
{
sum += toNum(n,i);
}
getNum(sum,n-2);
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐