数字分解为不同自然数的最大乘积
来源:互联网 发布:网络剧小心超人与伽罗 编辑:程序博客网 时间:2024/06/05 14:21
须知:任何一个数分解成非1的两个数的乘积必然大于这个数本身,所以根据此道理可知要想使数分解的乘积最大则分解的数越小越好,最好能够全都分解成2.当然大多数情况都不允许重复,所以呢,就必须从2开始往上加,当加到不能在加时必然会有一个余数。如何处理这个余数是个问题?为了使乘积最大应当从已分解得数的数组最小开始尝试加余数,如果加余数后的值大于本数组的最大值,则此时的数组就是最大乘积的情况了。OK
相关水题:poj1032
解题代码:
#include<iostream>#include<cstdio>using namespace std;int main(){ int n,ans=1,a[50],k=0,m,temp; scanf("%d",&n); m=n; for(int i=2;i<n;i++) { m-=i; if(m<0) { m+=i; break; } else a[k++]=i; } for(int i=0;i<k;i++) if(a[i]+m>a[k-1]) { a[i]=a[i]+m; temp=a[i]; for(int j=i;j<k-1;j++) a[j]=a[j+1]; a[k-1]=temp; break; } for(int i=0;i<k;i++) printf("%d ",a[i]); printf("\n"); return 0;}
0 0
- 数字分解为不同自然数的最大乘积
- 若干个不同的自然和为定值,这些自然数乘积最大为多少?
- 乘积最大的分解
- 整数分解成不同加数的最大乘积
- 把自然数N分解成若干个互不相同的正整数,使乘积最大
- 一个正整数n被分成若干个不同自然数的和,求组成n的一组自然数的最大乘积
- sdut 1293 乘积最大的分解
- 【POJ1032】把一个数分解为不重复的数的和使其乘积最大
- 使一个正整数分解为若干整数,使其各个数的乘积最大
- 整数分解为质数的乘积
- EularProject 38:数字组合1-9分解为数字与1到n的乘积的和
- 将一个正整数分解为连续的自然数的和
- 连续数字最大乘积
- 输出正整数分解的所有数的最大乘积
- SDUTOJ 1293 乘积最大的分解(数论)
- 分解一个整数为素数的乘积形式
- Java实现把正整数分解为质因数的乘积
- 任意自然数分解为连续自然数和问题
- [概念笔记] Redis
- log4php日志插件
- python中遍历文件的3个方法
- 初始化NavigationView HeaderView中控件
- 深度学习平台Caffe环境搭建【CPU版】
- 数字分解为不同自然数的最大乘积
- Vue.js——vue-resource全攻略
- 【BZOJ 4810】【YNOI 2017】由乃的玉米田【莫队+bitset】
- CAN总线错误分析与解决
- 遥想宇宙
- JAVA简单实现停车场系统
- 【C语言】指针和数组
- PHP ajax跨域解决
- DirectFB学习之移植到nuc972平台