HDU:4432 Sum of divisors
来源:互联网 发布:mac pro 快速回到桌面 编辑:程序博客网 时间:2024/05/17 02:00
这个题只要按照题目模拟就好了,其实挺水的,没什么好分析的。
值得注意的地方是计算因子的时候,循环里要给N开方,否则会超时。还有数组不必太开的超大。
当时比赛的时候没有做出来,其实我应该早点看rank的,那么多人做出来就说明很简单。现在跟榜也算是一种经验了吧。
#include<iostream>#include<cstdio>#include<cmath>#include<cstdlib>#include <algorithm>#include<cstring>using namespace std;int num[1000]={0};int fun(int x,int m){ int s=0; while(x) { num[s++]=x%m; x=x/m; } return s;}int compute(int s,int m){ int sum=0; for(int i=0;i<s;i++) sum+=num[i]*num[i]; return sum;}int main(){ int n,m; while(scanf("%d %d",&n,&m)!=EOF) { int sum=0; for(int i=1;i*i<=n;++i) { if(n%i==0) { sum+=compute(fun(i,m),m); memset(num,0,sizeof(num)); if(n/i!=i) { sum+=compute(fun(n/i,m),m); memset(num,0,sizeof(num)); } } } memset(num,0,sizeof(num)); int s=fun(sum,m); for(int i=s-1;i>=0;i--) { if(num[i]==10) printf("A"); else if(num[i]==11) printf("B"); else if(num[i]==12) printf("C"); else if(num[i]==13) printf("D"); else if(num[i]==14) printf("E"); else if(num[i]==15) printf("F"); else printf("%d",num[i]); } printf("\n"); } return 0;}
- HDU 4432 Sum of divisors
- HDU:4432 Sum of divisors
- hdu 4432 Sum of divisors
- hdu 4432 Sum of divisors
- HDU 4432 Sum of divisors
- HDU 4432(Sum of divisors)
- hdu 4432 Sum of divisors(暴力)
- HDU 4432 Sum of divisors 质因数分解
- HDU-#4432 Sum of divisors(模拟)
- hdu 4432 Sum of divisors(模拟)
- HDU—— 4432 Sum of divisors
- HDU 4432 Sum of divisors (进制模拟)
- HDU 4432Sum of divisors (进制转换模板)
- hdu4432 Sum of divisors
- hdu4432 - Sum of divisors
- Sum of divisors
- Sum of divisors
- hdu4432 Sum of divisors
- XML解析具体过程
- win2003 安装itunes ----iphone4s
- rsync 基础设定
- thinkphp模板函数应用 算术运算
- Struts2数据传输的背后机制:ValueStack(值栈)(转载)
- HDU:4432 Sum of divisors
- 利用批处理文件运行java程序
- JDBC数据库连接池的实现
- 使用c3p0开源的JDBC连接池小实例
- JDK自带的JVM性能监控工具jconsole的使用
- UML各种图例及相关元素的说明
- 检验对finally理解是否透彻的一段代码
- JFreeChart图形开发包学习笔记
- 在tomcat下context.xml中配置各种数据库连接池(转)