您的位置:首页 > 其它

51nod 1116 K进制下的大数 (暴力枚举)

2016-08-12 14:38 239 查看
题目链接

题意:中文题。

题解:暴力枚举。

#include <iostream>
#include <cstring>

using namespace std;

const int MAXS = 1e5 + 10;
const int MAXK = 36;

char num[MAXS];

int main(int argc, const char * argv[])
{
while (cin >> num)
{
int sum = 0;
int len = (int)strlen(num);
int MINK = 2;
for (int i = 0; i < len; i++)
{
if (num[i] >= '0' && num[i] <= '9')
{
if (num[i] - '0' + 1 > MINK)
{
MINK = num[i] - '0' + 1;
}
sum += num[i] - '0';
}
else
{
if (num[i] - 'A' + 11 > MINK)
{
MINK = num[i] - 'A' + 11;
}
sum += num[i] - 'A' + 10;
}
}

bool flag = true;
for (int i = MINK; i <= MAXK; i++)
{
if (sum % (i - 1) == 0)
{
flag = false;
cout << i << '\n';
break;
}
}
if (flag)
{
cout << "No Solution\n";
}
}

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