码迷,mamicode.com
首页 > 编程语言 > 详细

c++聪聪看书(低数据版代码)

时间:2015-10-03 09:32:17      阅读:213      评论:0      收藏:0      [点我收藏+]

标签:

      聪聪是一个善良可爱、睿智聪慧的好孩子。聪聪喜欢看书,这一天她在看一本书时看到
了这样一个问题:给你一个正整数n,你要将它分成若干个自然数Ai的和的形式,并且使得
这若干个自然数Ai的乘积尽量大,并输出最大乘积。比如n=5的情况,最优的方案是5=2+3,
答案为6。这么简单的问题聪聪当然会做了,她想考考你,你能不能比她先给出问题的答案
呢?

【输入】
      输入文件名为reading.in 共1行,包含1个正整数n。
【输出】
      输出文件reading.out 共1行,包含1个整数,表示最大乘积。
【输入输出样例】
      reading.in/reading.out
      7

      12

【数据范围】
      对于30%的数据,1≤n≤10。
      对于60%的数据,1≤n≤100。
      对于100%的数据,1≤n≤10000。

 

小学奥数学过吗?这题的思路是:每次从n中拆出3,然后m*3,直到n<=4为止。当n<=4时,m再最后乘一次n。不知这个思路学过没?

为什么n<=4就结束?其实多手写几组数据就知道:有的时候m最后乘一个4的时候,结果会最大,而最后一次不可能乘以5!

这是代码,有问题评论。

#include<iostream>
using namespace std;
int n,m=1;
int main()
{
    cin>>n;
    if(n<=4) m=n;
    else
    {
        while(n>4)
        {
            n-=3;
            m*=3;
        }
        if(n!=0) m*=n;
    }
    cout<<m;
    system("pause");
    return 0;
}

这个代码只能得60分,因为当n<=10000的时候,结果会有好几百位,所以要用高精度。

c++聪聪看书(低数据版代码)

标签:

原文地址:http://www.cnblogs.com/scx2015noip-as-php/p/ccks.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!