Vijos 1033 整数分解(版本2)
描述
整数分解(版本2)
一个正整数可以分解成若干个自然数之和。请你编一个程序,对于给出的一个正整数n(1<=n<=1500),求出满足要求的分解方案,并使这些自然数的乘积m达到最大。
例如n=10,则可以分解为2+2+3+3,乘积m=2*2*3*3=36
格式
输入格式
一个正整数n
输出格式
输出分解的自然数的最大乘积m
样例1
样例输入1
10
样例输出1
36
题解
通过对这道题的分析,可以发现:
如果n1,2,3,则不用分;
如果n=4,则分成两个2和部分都是一样的;
如果n5,则分成2和3是最大的;
如果n6,则分成3和3是最大的;
如果n7,则分成4和3是最大的;
如果n8,则分成2和3和3是最大的;
如果n9,则分成3和3和3是最大的;
……
总结规律,我们可以发现如果一个数大于4的情况下,我们只要不断地分3就可以了。而这就是我们的解法。
代码如下:
#include <cstdio>
#include <cstring>
using namespace std;
int a[1500], n;
void init()
{
memset(a, 0, sizeof(a));
a[0] = 1;
}
void multi(int b)
{
int c = 0;
for (int i = 0; i < 1500; i ++)
{
c = c + a[i] * b;
a[i] = c % 10;
c /= 10;
}
}
void output()
{
int i = 1499;
for (;i > 0 && a[i] == 0; i --);
for (;i >= 0; i --)
{
printf("%d", a[i]);
}
printf("\n");
}
int main()
{
init();
scanf("%d", &n);
while (n > 4)
{
n -= 3;
multi(3);
}
multi(n);
output();
return 0;
}
这里唯一要考虑的问题是n<=1500,所以答案最大可能达到3^500,这是long long类型都保存不了的,所以需要用到大数乘法。
Vijos 1033 整数分解(版本2)的更多相关文章
- 整数分解 && 质因数分解
输入整数(0-30)分解成所有整数之和.每四行换行一次. 一种方法是通过深度优先枚举出解.通过递归的方式来实现. #include <stdio.h> #include <strin ...
- POJ 2429 GCD & LCM Inverse (Pollard rho整数分解+dfs枚举)
题意:给出a和b的gcd和lcm,让你求a和b.按升序输出a和b.若有多组满足条件的a和b,那么输出a+b最小的.思路:lcm=a*b/gcd lcm/gcd=a/gcd*b/gcd 可知a/gc ...
- POJ 1811 Prime Test (Pollard rho 大整数分解)
题意:给出一个N,若N为素数,输出Prime.若为合数,输出最小的素因子.思路:Pollard rho大整数分解,模板题 #include <iostream> #include < ...
- POJ1811_Prime Test【Miller Rabin素数测试】【Pollar Rho整数分解】
Prime Test Time Limit: 6000MS Memory Limit: 65536K Total Submissions: 29193 Accepted: 7392 Case Time ...
- Light OJ 1341 Aladdin and the Flying Carpet Pollard_rho整数分解+DFS
进入a b 多少努力p, q 使p*q == a && p < q && p >= b 直接大整数分解 然后dfs所有可能的解决方案劫持 #include ...
- PTA 7-1 整数分解为若干项之和(20 分)
7-1 整数分解为若干项之和(20 分) 将一个正整数N分解成几个正整数相加,可以有多种分解方法,例如7=6+1,7=5+2,7=5+1+1,….编程求出正整数N的所有整数分解式子. 输入格式: 每个 ...
- POJ2429_GCD & LCM Inverse【Miller Rabin素数測试】【Pollar Rho整数分解】
GCD & LCM Inverse Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 9756Accepted: 1819 ...
- 整数(质因子)分解(Pollard rho大整数分解)
整数分解,又称质因子分解.在数学中,整数分解问题是指:给出一个正整数,将其写成几个素数的乘积的形式. (每个合数都可以写成几个质数相乘的形式,这几个质数就都叫做这个合数的质因数.) .试除法(适用于范 ...
- Miller-Rabbin 素性测试 和 Pollard_rho整数分解
今天学习一下Miller-Rabbin 素性测试 和 Pollard_rho整数分解. 两者都是概率算法. Miller_Rabbin素性测试是对简单伪素数pseudoprime测试的改进. (ps ...
随机推荐
- User-Agent详解
User-Agent : 用户代理 用户在上网的时候会作为http 请求头的一部分传递给服务端 ,用于识别用户当前环境(如浏览器类型及版本号,以及操作系统信息 ) 右键f12可以查看 下面是我的浏 ...
- 200 OK (from cache)原因
Meta标签中的http-equiv用来标记不可缓存或过期时间,但效果一般.而且代理缓存基本不访问HTML文档内容,所以尽量少用meta标签控制缓存. Pragma: no-cache Forces ...
- UILabel图文混排显示图片和文字
//传入文字 自动图片放在左边文字紧接着后排排布 -(void)setAttrDetailLabelWithTitle:(NSString *)title { NSMutableAttributedS ...
- 让xcode8支持7.0的设备
升级到xcode8之后发现不能支持7.0设备 1 . 下载文件将文件覆盖到 /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS. ...
- 【Java并发系列03】ThreadLocal详解
img { border: solid 1px } 一.前言 ThreadLocal这个对象就是为多线程而生的,没有了多线程ThreadLocal就没有存在的必要了.可以将任何你想在每个线程独享的对象 ...
- WEB前端:浏览器(IE+Chrome+Firefox)常见兼容问题处理--01
兼容问题目录 1.IE6下怪异盒模型 2.IE6下最小高度问题 3.IE6下不支持1px的点线 4.IE6下内容会把父级的高度撑开 5.IE6下只支持给a标签添加伪类 6.IE67下不支持给块标签加d ...
- Yii2项目实现Markdown功能 在线Markdown编辑器
版权声明:本文为博主原创文章,欢迎扩散,扩散请务必注明出处. Yii中添加MarkDown编辑器 主要使用了两个网页Markdown编辑器,都带预览功能. 1,ijackua/yii2-lepture ...
- linux切换g++
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.4 50(优先级) sudo update-alternative ...
- 各种Web漏洞测试平台
Sqli Lab支持报错注入.二次注入.盲注.Update注入.Insert注入.Http头部注入.二次注入练习等.支持GET和POST两种方式. https://github.com/Audi-1 ...
- WKWebView 官方文档
WKWebView 类 一个WKWebView对象可以显示交互式的web内容.就像一个应用程序的浏览器.你可以使用WKWebView类嵌入Web内容的应用程序.这样做,创造一个WKWebView对象, ...