51Nod1116 K进制下的大数(思维)
来源:互联网 发布:网络推广报价方案 编辑:程序博客网 时间:2024/06/15 03:29
题意:一个大数是k进制并且是(k - 1)的倍数,求出最小的k;
思路:当为k进制的时候,因为k % (k - 1) == 1,k ^ k % (k - 1) == 1,……,所以这个大数每位的权取模之后全是一,所以要判断k进制数是否是(k - 1)的倍数的话直接将各个数相加,判断一下是否是(k - 1)的倍数就行。
COde:
#include<iostream>#include<cstdio>#include<queue>#include<cstring>using namespace std;typedef long long ll;const int maxn = 1000000 + 2;#define INF 0x3f3f3f3f#define clr(x,y) memset(x,y,sizeof x)char s[maxn];int main(){ while( ~ scanf("%s",s)) { int len = strlen(s); int sum = 0; int maxs = 1; for(int i = 0; i < len; i ++) if(s[i] >= '0' && s[i] <= '9') sum += s[i] - '0',maxs = max(maxs,s[i] - '0'); else sum += s[i] - 'A' + 10,maxs = max(maxs,s[i] -'A' + 10 ); int ans = -1; for(int i = max(2,maxs + 1); i <= 36; i ++) { if(sum % (i - 1) == 0) { ans = i; break; } } if(ans == -1) puts("No Solution"); else cout << ans << endl; } return 0;}
阅读全文
0 0
- 51Nod1116 K进制下的大数(思维)
- 51NOD1116 K进制下的大数
- 51nod1116-取模&大数-K进制下的大数
- 51NOD 1116 K进制下的大数
- 51nod 1116 K进制下的大数
- 51Nod 1116 K进制下的大数
- 51nod 1116 K进制下的大数
- 51nod 1116 K进制下的大数
- 51nod 1116 K进制下的大数
- 51Nod 1116 K进制下的大数
- 51nod 1116 K进制下的大数
- 51nod 1116 K进制下的大数
- 51nod 1116 K进制下的大数
- 51nod 1116 K进制下的大数
- K进制下的大数 51Nod
- 51Nod 1116 K进制下的大数
- 1116 K进制下的大数
- 1116 K进制下的大数
- Interesting Calculator( 湖南省第九届大学生计算机程序设计竞赛)
- aspectj
- Linux设备驱动模型4——平台总线实践
- Java经典设计模式之七大结构型模式(附实例和详解)
- 将博客搬至CSDN
- 51Nod1116 K进制下的大数(思维)
- 用R实现一个简单的感知机
- poj2388Who's in the Middle(快速排序)
- [bzoj1057][ZJOI2007]棋盘制作
- Spring入门(二)——理解spring的AOP编程
- 第二十二讲项目1-翻转数组
- 【阶段小结】库房管理需求敲定
- ACM-并查集- How Many Tables-HDU
- Java经典设计模式之十一种行为型模式(附实例和详解)