整数分解问题
Description
有一个整数n,n可分解成若干个整数之和,问如何分解能使这些数的乘积最大。请编程,输入一个整数n(n<50),将n分解成若干个整数,输出这些数的乘积m,且要保证m是最大的。
Input
共一行,为整数n。
Output
最大的乘积m。
Sample Input
10
Sample Output
36
Source
习题6-3
问题分析:
对于一个整数,我们首先要知道,分解成怎样的形式才能使乘积最大。得到的结论是分成尽可能多的3,剩下的都分成2,这样可以得到最大的乘积。所以,我们程序的目的就是将输入的数N分成很多个3进行累乘。当N小于等于4时,我们就可以直接乘以N了。这是因为如果是1,2或者3显然它本身是最大的,不能把2分成1和1,或者把3分成1和2.对于4,最好的分解方法显然是2和2.但是2*2就等于4,所以,当N小于等于4的时候,我们就可以不用再分了。
解决方案:
总的来说,有两种解题思路。一个正着退,一个倒着来。也就是一个用递推,一个用递归。现在在这个程序中用递推的效率明显高于递归。详见参考程序。
参考程序(递推):
#include<stdio.h>
int main()
{
int N;
scanf("%d",&N);
int m=1; //用m表示乘积
while(N>4)
{
m=m+m+m; //用加法替代乘法
N=N-3;
}
m=m*N;
printf("%d\n",m);
return 0;
}
参考程序(递归):
#include<stdio.h>
int calc(int N);
int main()
{
int N;
scanf("%d",&N);
printf("%d\n",calc(N));
return 0;
}
int calc(int N)
{
if(N<=4)
return N;
else
return 3*calc(N-3);
}
分享到:
相关推荐
RUC_Equip 数据库课程设计,以学生、老师、仪器辅导员三种身份参与的大型仪器预约管理平台。 项目实现使用python3.7, mysql,Django, 其中 $Mysql$ 数据库部分使用 $\text{phpmyadmin}$ 进行图形页面管理。数据库...
中国人民大学大型仪器管理平台 RUC_InsManagement一、Introduction本项目为数据库课程设计的前期demo版本,主要包括了该项目的前端设计、交互控制等内容。项目内容大致完整,基本只需要简单的命令就能够上手跑起这个...
Validador RUC和DNI客户和被证明者: * Nuevo campo "tipo de documento"* Validacion RUC y DNI相依性: $ sudo apt-get install tesseract-ocr tesseract-ocr-eng python-imaging python-pip python-bs4 $ sudo ...
以AIROBOT为平台构建的一个智能机器人。主源码见main.c。其余为使用的函数接口定义
RUC Validation. For purposes of control, in Peru, public and private enterprises are identified by a Taxpayer Registration Number-RUC. For this reason it is of much value to accounting or financial ...
汇编语言人大的讲义绝对真实RUC汇编语言人大的讲义绝对真实RUC汇编语言人大的讲义绝对真实RUC汇编语言人大的讲义绝对真实RUC
塞杜拉和厄瓜多尔RUC的验证人 开发此小程序包可以轻松验证: 身份证 自然人的RUC 私人公司的RUC 上市公司的RUC 介绍 对于这种包装的发展,以下库通过创建已被作为一个基础,它已被修改,以便它是安装通过作曲家...
ruc-beamer-模板 用于 RUC 的乳胶投影仪模板。 如何使用 latexmk -xelatex -use-make example.tex 或者, xelatex example.tex 截图 依赖关系 特克斯 雅黑字体 关于作者
巴拿马电视用于为巴拿马计算给定RUC的DV的程序。 见 用法: #!/usr/bin/env python2 import sys import argparse import ruc parser = argparse . ArgumentParser ( description = 'DV calculator' ) parser . add_...
API Consulta Ruc y Dni-秘鲁 API顾问DNI和RUC-秘鲁,empleando软件包。 Requerimientos PHP 7.3或更高。 安装 码头工人 使用镜像 docker run -d -p 8080:8080 --name peru-consult -e API_TOKEN=your_key ...
Ruc验证 允许为秘鲁业务验证ruc 使用npm或bower安装 npm install validate-ruc --save bower install validate-ruc --save 从Node.js或浏览器使用 var ruc = require('validate-ruc'); [removed][removed] var ...
jQuery插件,用于验证厄瓜多尔ID或RUC jQuery插件,用于验证厄瓜多尔ID或RUC。 :warning: 该库已有一段时间没有得到积极维护。 但是,请求请求是欢迎的。如何使用jQuery [removed][removed] JavaScript库: [removed...
Java语言游戏项目实战资源包 内容概览: 这次分享为你带来了丰富的Java语言游戏项目实战资源,让你在实践中深入掌握Java语言,并开启游戏开发之旅。资源包中包括: 游戏项目代码:精心挑选了多个经典的小游戏项目...
在SUNAT中咨询RUC。 安装软件包 npm install 运行服务器 npm start node app.js 请愿 http://localhost:3000/ 要求POST: { " ruc " : " 20254138577 " } 回复: [ { " name " : " Número de RUC: " , " ...
基于elasticsearch+django+bootstrap的类案检索系统。现阶段仅能从RUC校园网访问 Environments elasticsearch==8.4.1 django==4.0.3 bootstrap==5.1.3
当前的RUC系统面临着诸如透明度,交叉补贴,环境问题以及由于车辆效率提高而降低燃油税之类的税收减少等问题。 因此,本文回顾了当今世界上实施的RUC机制在利益相关者问题和货运行业需求方面的优势和劣势,并描述了...
2017年中国综合社会调查(CGSS),数据为csv格式,下载自官网(httpcgss.ruc.edu.cnindex.htm),仅作练习数据使用,禁止商用及传播。
多媒体大数据分析研究进展综述导读 自然语言生成、深度学习算法、多媒体大数据分析,今天为大家详细介绍下多媒体大数据分析综述这篇文章。
RUC Rust Util Collection,一个简单而友好的error-chain ,另外还添加了许多有用的utils。 使用error-chain的痛苦经历催生了这个项目。 它可以适应几乎所有场景,而无需任何特殊实现。 文件资料 make doc 用法 ...