nyoj541最强DE战斗力
来源:互联网 发布:山东舜德数据 编辑:程序博客网 时间:2024/04/29 06:39
nyoj541
题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=541
1. 数字二和三能组成任何数, 因此一个数的最大值的乘积 为2^m * 3^n
2. 然而3^n > 2^n ,能用3就不用2 ( 3 > 1*2 ,n=1次时),但同时要考虑一个问题 ,什么时候用2 不用 3,
其实就是 一种情况 除3的时候有余数1就浪费了 1*x,不如 给2 ,就像4 这样 4-3 = 1 1*3 < 2*2 。
3.然后就是高进度运算了,容易错,因为我在这里有一个长度控制, 那么就存在有些有些位有进位,有些没有,那么需要一个合适判断条件 去结束循环,有些人直接整体刷表,也可以肯方便,还不易错。
#include<stdio.h>#include<string.h>#define max(a,b) a>b?a:bint s1[2000];void change(int n){ int i; for(i = 1;i<s1[0];i++) { s1[i] = s1[i]*n; } int t = 0,s; i = 1; while(1) { s = (s1[i]+t)%10; t = (s1[i]+t)/10; s1[i] = s; i++; if( t==0 && i>= s1[0])break; //这个控制很关键 } s1[0] = max(s1[0] , i); }int main(){ int n,m,i; scanf("%d",&n); while(n--) { memset(s1,0,sizeof(s1)); scanf("%d",&m); s1[0] = 2; s1[1] = 1; for(;m-3>=2 || m-3 == 0;m=m-3) //如果最后发生 4 的情况排除即可。 { change(3); } for(;m-2>=0;m=m-2) { change(2); } for(i = s1[0]-1;i>=1;i--) printf("%d",s1[i]); printf("\n"); }}
0 0
- nyoj541最强DE战斗力
- NYOJ541 最强DE 战斗力
- NYOJ541 最强DE 战斗力 【数学】+【大数】
- nyoj541 最强DE 战斗力 (大数问题)
- NYOJ541 最强DE 战斗力(第五届省赛试题)
- nyoj541 最强DE战斗力(数论&&大数问题)
- Nylg541 最强DE 战斗力
- 最强DE 战斗力
- 最强DE 战斗力
- 最强DE 战斗力
- 最强DE 战斗力
- 最强DE 战斗力 【大数】
- NYOJ:最强DE 战斗力
- 第五届省赛:最强DE 战斗力
- nyoj 541 最强DE 战斗力
- NYOJ 541 最强DE 战斗力
- 题目541最强DE 战斗力
- 第五届省赛题 最强DE战斗力
- 各工具下载地址
- 选择排序法 排列10个随机产生的10~100之间的数
- android 远程服务传递自定义数据类型
- 冒泡排序
- socket传输汉字
- nyoj541最强DE战斗力
- Ubuntu安全上网配置
- android service
- 有趣的字符查找函数模拟strstr和strrstr,strchr和strrchr
- shell算术运算
- scapy简单命令
- 共同学习Java源代码--数据结构--AbstractCollection抽象类(一)
- 第七届蓝桥杯第9题:交换瓶子
- poj 2425 A Chess Game(sg函数)