博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ural 1104,暴力取模
阅读量:5938 次
发布时间:2019-06-19

本文共 976 字,大约阅读时间需要 3 分钟。

题目链接:

题目大意:输入一个字符串(数字与大写字母组成),输出n,n满足此字符串为n进制时,其n进位制数能被n-1整除(n不存在时输出"No solution"(不包括双引号))。

 

题目好多坑点,我也是WA了好几次才A的。算法是暴力的。

1,刚开始,我怎么都想不清楚,答案就是2啊,任何数都可以被1整除啊,其实,不是这样的,比如说,123就不是2进制数,所以说,这里要找到字符串中最大的字符,从maxnum+1进制开始找。

2,test 6,就是在%(k-1),可能除以了0,就是说你要找最大的maxnum = 1;这时就不对了,应该将maxnum和2比较一下。

#include 
using namespace std;#define maxn 1000100char str[maxn];long long num[maxn];int len;int getnum(char a){ if(a>='0'&&a<='9') return (a-'0'); else return (a-'A'+10);}bool judge(int k){ //long long base = 1; long long sum = 0; /* for(int i=len-1; i>=0; i--) { sum +=num[i]*base; base*=k; } if(sum%(k-1)==0) return true; return false; */ for(int i=len-1;i>=0;i--) { sum +=num[i]; sum = sum%(k-1); sum*=k; } return sum==0;}int main(){ scanf("%s",str); len = strlen(str); int maxnum = 0; for(int i = 0; i
View Code

 

转载于:https://www.cnblogs.com/TreeDream/p/5927485.html

你可能感兴趣的文章
Android Service学习
查看>>
【数据库】sql2008卸载和默认实例的删除 ...
查看>>
SDNU 1086.迷宫问题(bfs标记路径)
查看>>
类的高内聚低耦合
查看>>
怎么下载geventwebsocket
查看>>
React文档(十六)refs和DOM
查看>>
电信计费业务:预后融合OCS到底应该实扣还是虚扣?
查看>>
【算法学习笔记】42.正反DP 填充问题 SJTU OJ 1285 时晴时雨
查看>>
《Python编程从入门到实践》学习笔记<7>:用户输入和while循环
查看>>
winform 批量控件取值赋值
查看>>
Div+css 怎么让一个小div在另一个大div里面 垂直居中
查看>>
我要学习go语言!
查看>>
解决-修改SQL 2005 Express混合认证模式
查看>>
我的Java开发学习之旅------>银行业务调度系统
查看>>
Android eclipse 程序调试
查看>>
请听一个故事------>讲述一段失败的创业经历 ,希望你能从中受到启发
查看>>
详解连接SQL Server数据库的方法,并使用Statement接口实现对数据库的增删改操作...
查看>>
js组成之dom_dom对象样式操作及运用
查看>>
jquery_jquery动态创建元素及应用
查看>>
[转载]Windows 2012 R2安装SharePoint 2013 手动安装工具软件
查看>>