VJ 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
提示
简单题,所有数据随机生成
题解 : n <= 3 时, 答案最大为n,即不拆。
n > 3 时, 我们发现应该把数拆成尽量多的2和3的和,因为大于2,3的数拆成2,3乘积都别拆成别的大,就算是4也只是与2 * 2等价(4 = 2 + 2), 不会使答案更优。
CODE:
#include <iostream> #include <cstdio> #include <cstring> #define REP(i, s, n) for(int i = s; i <= n; i ++) #define REP_(i, s, n) for(int i = n; i >= s; i --) #define MAX_N 1000 + 10using namespace std;int a[MAX_N],la=1;void mul (int e){int s = 0, t = 0;REP(i, 0, la - 1){t = a[i] * e; a[i] = (t + s) % 10;s = (t + s) / 10;}while(s > 0){a[la ++] = s % 10;s /= 10;} }int main (){int n;scanf("%d",&n);memset (a, 0, sizeof (a));a[0] = 1;if(n%3==0){ REP(i, 1, n / 3) mul(3); }else if(n % 3 == 1){ REP(i, 1, (n / 3 - 1)) mul(3); mul(4);}else{REP(i, 1, n / 3) mul(3);mul(2);}if (n > 2)REP_(i, 0, la - 1) printf("%d",a[i]);else printf("%d",n);return 0; }
转载于:https://www.cnblogs.com/ALXPCUN/p/4527068.html
VJ 1033 整数分解(版本2)相关推荐
- 整数n分解成素数乘积c语言,用C语言和汇编语言实现将1个整数分解成几个素数的乘积...
任何1个大于2的整数都可以分解成几个素数的乘积.将1个整数分解成几个素数的乘积是个热门话题. 经常有人问到.本文试图用C语言和32位X86汇编语言给出一个比较好的实现.希望对c语言学习者和 汇编语言学 ...
- 7-37 整数分解为若干项之和(20 分)
7-37 7-37 整数分解为若干项之和(20 分) 将一个正整数N分解成几个正整数相加,可以有多种分解方法,例如7=6+1,7=5+2,7=5+1+1,-.编程求出正整数N的所有整数分解式子. 输入 ...
- 分解 python_面试官:如何用Python实现将一个整数分解成质因数?
概述 今天主要分享一个关于分解质因数的实例,判断的逻辑稍微多了点,一起来看看吧~ 需求 将一个整数分解质因数.例如:输入90,打印出90=233*5 思路 其实根本不需要判断是否是质数,从2开始向数本 ...
- 数论 —— 整数分解
[概述] 整数分解目前仍是世界级难题,是非常重要的研究方向,其有很多种算法,性能上各有差异,本文仅介绍试除法.Fermat 算法.Pollard Rho 算法. [试除法] 试除法也叫穷举法,是整数分 ...
- 7-37 整数分解为若干项之和 (20 分)(dfs)
7-37 整数分解为若干项之和 (20 分) 将一个正整数N分解成几个正整数相加,可以有多种分解方法,例如7=6+1,7=5+2,7=5+1+1,-.编程求出正整数N的所有整数分解式子. 输入格式: ...
- 整数分解为若干项之和
7-37 整数分解为若干项之和 (20 分) 将一个正整数N分解成几个正整数相加,可以有多种分解方法,例如7=6+1,7=5+2,7=5+1+1,-.编程求出正整数N的所有整数分解式子. 输入格式: ...
- 51Nod-1383 整数分解为2的幂【数列】
1383 整数分解为2的幂 任何正整数都能分解成2的幂,给定整数N,求N的此类划分方法的数量!由于方案数量较大,输出Mod 1000000007的结果. 比如N = 7时,共有6种划分方法. 7=1 ...
- 编程将一个整数分解成一个质因数的连乘积,并打印在屏幕上
//编程将一个整数分解成一个质因数的连乘积,并打印在屏幕上 //***本题的难点是既要找出质因数,又要保证其连乘为该数 //***需要两个循环,外循环与内循环 /*每个合数 都可以写成几个 质数 相乘 ...
- 51nod 13831048 整数分解为2的幂 [递推]【数学】
题目连接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1048 ---------------------------- ...
最新文章
- 计算机鼠标不好使,鼠标不好用 原因竟然让人哭笑不得
- c语言歌曲评选系统报告,C语言程序设计报告—歌曲信息管理系统精要.doc
- js blob 下载到本地文件
- GNU C中x++是原子操作吗?
- vim ctags java源码_如何使用vim的插件Ctags查看Linux源码
- ubuntu系统设置开机自启动
- 中国移动wlan优化app-截图
- 硬盘读写测试工具_硬盘测速工具:Blackmagic Disk Speed Test Mac
- 6.Entity FrameWork Core 5.0 删除、修改数据
- 哔哩哔哩Java学习视频
- ps渐变如何使用?如何使用Photoshop 2021给图片制作出渐变效果?
- 如何使用PS改变只有一种颜色图片的颜色
- oracle 怎么做日期计算,oracle日期计算
- 深度学习建模预测全流程(Python)!
- java 的安全管理器
- linux下ace安装教程,linux下安装ACE开发环境
- win10共享打印机搜索不到计算机,Win10专业版在局域网中搜索不到打印机
- 秣小白的C语言旅程——第一站
- 设置什么加快计算机启动速度,如何设置CPU加速对电脑启动速度的方法(更改CPU数量可开机提速)...
- UNIX环境高级编程 - UNIX基础知识
热门文章
- Google MapReduce有啥巧妙优化?
- 身为Java程序员,这些开源工具你一定要学会!
- Consul 原理和使用简介
- Python 怎么样在函数内部对全局变量进行修改
- ddnspod php 脚本_使用DNSPOD的域名解析实现DDNS域名动态的脚本
- react循环setstate_react -- 关于兄弟组件触发更新的问题
- redis 启动_Redis介绍amp;安装amp;启动
- python怎么用pip_python怎么使用pip工具
- 中国证券期货业南方信息技术中心二期约1.5万个机柜建设项目EPC总包定了!
- android格式化手机号正则,Android验证手机号的正则表达式