• 8P


    在一个国家仅有1分,2分,3分硬币,将钱N兑换成硬币有很多种兑法。请你编程序计算出共有多少种兑法。

    Input

    每行只有一个正整数N,N小于32768。

    Output

    对应每个输入,输出兑换方法数。

    Sample Input

    2934
    12553

    Sample Output

    718831
    13137761

    // 第一层循环:控制3分硬币的个数;第二层循环:控制2分硬币的个数;若此时总值未超过N,计数器+1
     1 #include<stdio.h>
     2 int main()
     3 {
     4     int n, c, i, j;
     5     while(~scanf("%d", &n))
     6     {
     7         c=0;
     8         for(i=0;i<=n/3;i++)
     9             for(j=0;j<=n/2;j++)
    10             {
    11                 if(n-3*i-2*j>=0)
    12                     c++;
    13                 else break;
    14             }
    15         printf("%d
    ", c);
    16     }
    17     return 0;
    18 }
    Time Limit Exceeded
    // 详见代码
     1 #include<stdio.h>
     2 // 3分钱,2取种,1补值. 
     3 int main()
     4 {
     5     int n, c, i;
     6     while(~scanf("%d", &n)) // n=x1+2*x2+3*x3.
     7     {
     8         c=n/3+1;            // 全用1分兑换 +1. 每3=1+2 +1,不够1分凑. 
     9         for(i=0;i<=n/3;i++)
    10             c+=(n-3*i)/2;    // 先用3分兑换部分,剩下的每2=1+1 +1,不够1分凑. 
    11         printf("%d
    ", c);
    12     }
    13     return 0;
    14 }
    AC
  • 相关阅读:
    webpack-dev-server的使用及说明
    Web框架
    HTTP协议
    jQuery的使用
    发红包
    python操作mysql
    mysql索引与补充
    JavaScript之BOM操作
    JavaScript之DOM操作
    JavaScript之基础语法
  • 原文地址:https://www.cnblogs.com/goldenretriever/p/10355719.html
Copyright © 2020-2023  润新知