对于任意输入的一个整数,将其拆为两个数的和,使得这两个数的乘积最大?
如15拆为7+8时,最大的乘积是56
C语言不会,请求帮助?谢谢大家
答案:4 悬赏:70 手机版
解决时间 2021-05-23 04:14
- 提问者网友:半生酒醒
- 2021-05-22 20:08
最佳答案
- 五星知识达人网友:平生事
- 2021-05-22 21:28
这个是代码。。算法呢。。就是上面那位所说的。。
#include<stdio.h>
void main()
{
int n;
printf("请输入一个正整数:");
scanf("%d", &n);
printf("乘积最大为:%d*%d=%d.\n", (n / 2), (n - n / 2), (n / 2) * (n - n / 2));
}
#include<stdio.h>
void main()
{
int n;
printf("请输入一个正整数:");
scanf("%d", &n);
printf("乘积最大为:%d*%d=%d.\n", (n / 2), (n - n / 2), (n / 2) * (n - n / 2));
}
全部回答
- 1楼网友:从此江山别
- 2021-05-23 00:12
我支持一楼的.只要提示就好.代码还是自己想的好.
- 2楼网友:醉吻情书
- 2021-05-22 23:22
#include "stdio.h"
void main()
{
int a,b,M;
printf("please input M:"\n);
scanf("%d,&M");
if(M%2==0)
a=b=M/2;
else {
a=M/2;
b=a+1;
}
printf("%d=%d+%d\n",M,a,b):
}
- 3楼网友:毛毛
- 2021-05-22 22:10
要使积最大,就要把一个整数分成最接近的两个整数,可以先判断这个整数是奇数还是偶数,是偶数的话,最大积等于这个整数除以2再平方,是奇数的话把这个整数除以2,强制转换成整数,比如(int)(15/2)=7,然后再用7*(7+1),就可得出。编程就自己去编,每人程序员都是自己编出来的,会看会想算法不一定就能编。所以我只说算法。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯