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

原创 2015年11月18日 19:50:31


有一个字符串S,记录了一个大数,但不知这个大数是多少进制的,只知道这个数在K进制下是K - 1的倍数。现在由你来求出这个最小的进制K。
例如:给出的数是A1A,有A则最少也是11进制,然后发现A1A在22进制下等于4872,4872 mod 21 = 0,并且22是最小的,因此输出k = 22(大数的表示中A对应10,Z对应35)。
Input
输入大数对应的字符串S。S的长度小于10^5。
Output
输出对应的进制K,如果在2 - 36范围内没有找到对应的解,则输出No Solution。
Input示例
A1A
Output示例
22


   暴力枚举O(36*n)



#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
const int maxn=1e5+100;
char str[maxn];
int a[maxn];
int main()
{
	int n,i,j,ans,t,tt,ttt,mod;
	scanf("%s",str);
	n=strlen(str);
	ans=2;
	j=0;
	for(i=n-1;i>=0;i--) {
		if(str[i]>='0'&&str[i]<='9') {
			a[j]=str[i]-'0';
			ans=max(ans,a[j]+1);
		}
		else {
			a[j]=str[i]-'A'+10;
			ans=max(ans,a[j]+1);
		}
		j++;
	}
	a[j]='\0';
	for(;ans<37;ans++) {
		t=0;
		tt=1;
		mod=ans-1;
		for(i=0;i<n;i++) {
			t=(t+a[i]*tt%mod)%mod;
			tt=tt*ans%mod;
		}
		if(t==0) break;
	}
	if(ans<37) printf("%d\n",ans);
	else printf("No Solution\n");
	return 0;
}














版权声明:本文为博主原创文章,未经博主允许不得转载。

51NOD 1116 K进制下的大数(字符串取模 + 枚举)

传送门 1116 K进制下的大数 基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题 收藏 关注 有一个字符串S,记录了一个大数,但不知这个大数是多少进制的,只...
  • qingshui23
  • qingshui23
  • 2016年05月30日 14:32
  • 2983

hdu5143 暴力枚举

http://acm.hdu.edu.cn/showproblem.php?pid=5143 Problem Description NPY is learning arithmeti...
  • u013573047
  • u013573047
  • 2014年12月14日 20:17
  • 1216

暴力求解法 之 简单枚举

1、除法     输入正整数n,按从小到大的顺序输出所有形如abcde / fghij = n的表达式,其中a~j恰好为0~9的一个排列,2     样例输入:62     样例输出:  79546 ...
  • LYHVOYAGE
  • LYHVOYAGE
  • 2013年07月15日 13:10
  • 4560

51Nod 1094 和为k的连续区间 (前缀和暴力枚举/map优化)

题目链接:  http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1094      一整数数列a1, a2, ...
  • qq_33850438
  • qq_33850438
  • 2016年02月14日 03:58
  • 402

51nod 1116 K进制下的大数

有一个字符串S,记录了一个大数,但不知这个大数是多少进制的,只知道这个数在K进制下是K - 1的倍数。现在由你来求出这个最小的进制K。 例如:给出的数是A1A,有A则最少也是11进制,然后发现A1A在...
  • dengkuomin
  • dengkuomin
  • 2017年07月31日 18:02
  • 118

51NOD 1116 K进制下的大数

1116 K进制下的大数 基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题 收藏 关注 有一个字符串S,记录了一个大数,但不知这个大数是多少进制的,只知道这个数在K进...
  • LuRiCheng
  • LuRiCheng
  • 2016年09月27日 17:49
  • 175

51nod 1116 K进制下的大数

1116 K进制下的大数 基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题  收藏  关注 有一个字符串S,记录了一个大数,但不知这个大数是多少...
  • Timeclimber
  • Timeclimber
  • 2017年07月30日 22:24
  • 175

51NOD1116 K进制下的大数

有一个字符串S,记录了一个大数,但不知这个大数是多少进制的,只知道这个数在K进制下是K - 1的倍数。现在由你来求出这个最小的进制K。 例如:给出的数是A1A,有A则最少也是11进制,然后发现A1A在...
  • Viscu
  • Viscu
  • 2017年04月04日 23:44
  • 202

51Nod 1116 K进制下的大数

有一个字符串S,记录了一个大数,但不知这个大数是多少进制的,只知道这个数在K进制下是K - 1的倍数。现在由你来求出这个最小的进制K。 例如:给出的数是A1A,有A则最少也是11进制,然后发现A1A...
  • Hermann_weyl
  • Hermann_weyl
  • 2016年12月12日 13:03
  • 176

51 nod 1625 夹克爷发红包(暴力枚举+贪心)

1625 夹克爷发红包 基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题  收藏  关注 在公司年会上,做为互联网...
  • MM__1997
  • MM__1997
  • 2017年05月19日 12:29
  • 424
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:51nod 1116 K进制下的大数 (暴力枚举)
举报原因:
原因补充:

(最多只允许输入30个字)