zoukankan      html  css  js  c++  java
  • SDUT1293乘积最大的分解

    乘积最大的分解

    Time Limit: 1000MS Memory limit: 65536K

    题目描述

    一个正整数N(0<n<100),可以写成若干个正整数加数之和,如6可以写成
     
    6=1+2+3;
    6=2+2+2;
    6=2+4;
    6=3+3;
    6=1+5;
    ……

    其中有一种分解方式获得的加数的乘积是所有分解方式中最大的,比如上面分解中最大的乘积是3×3=9。

    请你设计一种算法,对于任何一个输入的正整数,求出其各种分解中所得到的最大乘积。

    输入

    输入有多组,每组一行输入一个正整数。以0作为输入的结束。

    输出

    对应输入的数据,输出多行,输出所求最大分解乘积。

    示例输入

    6
    7
    0

    示例输出

    9
    12
    思路:根据规律,一个正整数n拆分成多个3或多个2的和时,它们的乘积最大
    代码:
    View Code
    #include <stdio.h>
    #include <math.h>
    #include <stdlib.h>
    
    int main()
    {
        int n = 0;
        double num = 0;
        double ans = 0;
        while ( scanf ("%d", &n) != EOF && n )
        {
            if ( n == 1 )
            {
                printf ("1\n");
                continue;
            }
            if ( n == 2 )
            {
                printf ( "2\n" );
                continue;
            }
            if ( n % 3 == 0 )
            {
                num = n / 3;
                ans = pow (3.0, num );
            }
            else if ( n % 3  == 1 )
            {
                num = n / 3 - 1;
                ans = pow (3.0, num) * 4.0;
            }
            else
            {
                num = n / 3;
                ans = pow (3.0, num) * 2.0;
            }
            printf ("%.0lf\n", ans);
        }
        return 0;
    }
  • 相关阅读:
    电力基本知识
    .net图表工具汇总
    最重要的十年做什么才不浪费?
    花10分钟看一看少走30年弯路
    给明年依然年轻的我们
    Qt经典—线程、事件与Qobject
    C#源码500份
    .NET 性能优化方法总结==转
    qt +ChartDirector 绘制图表
    创业者,你为什么这么着急?
  • 原文地址:https://www.cnblogs.com/libao/p/2473153.html
Copyright © 2011-2022 走看看