首页 > 代码库 > 爱丽丝·玛格特罗依德

爱丽丝·玛格特罗依德

【题目描述】

爱丽丝·玛格特罗依德有n(0 < n < 10^5)点魔法值,每召唤出一个『上海人形』就要消耗x点魔法,最后,它们造成的威力就是每个人形所消耗的魔法值的总积。

【输入描述】

输入一个数n。

【输出描述】

输出一个数表示最大威力。

【样例输入】

10

【样例输出】

36

【数据范围及提示】

样例中,10=2+2+3+3,36=2*2*3*3。

源代码:#include<cstdio>#include<cstdlib>int n,Length=1,Ans[60000];int Get(int T) //高精度乘法。{    int i[60000];    i[1]=0;    for (int a=1;a<=Length;a++)    {        Ans[a]*=T;        Ans[a]+=i[a];        i[a+1]=Ans[a]/10;        Ans[a]%=10;    }    if (i[Length+1])    {        Length++;        Ans[Length]=i[Length];    }}void Solve(){    while (n)      if (n==4)      {        n-=4;        Get(4);      }      else        if (n==2)        {            n-=2;            Get(2);        }        else          if (n>=3)          {            n-=3;            Get(3);          }          else            if (n==1)            {                printf("1");                exit(0);            }}int main(){    scanf("%d",&n);    Ans[1]=1;    Solve();    for (int a=Length;a>0;a--)      printf("%d",Ans[a]);    return 0;}/*    解题思路:        一道红果果的数学奥赛题。尽量分成3,不足的就分成2。*/

爱丽丝·玛格特罗依德