码迷,mamicode.com
首页 > 其他好文 > 详细

常用的循环程序的设计方法

时间:2018-02-10 22:41:38      阅读:189      评论:0      收藏:0      [点我收藏+]

标签:can   范围   color   分析   strong   ret   ...   经典的   推出   

穷举法

也成枚举法,基本思想是:首先依据题目的部分条件确定答案的大致范围,然后对此范围内的所有可能的情况进行逐一验证,知道全部情况验证完毕,若某个情况验证符合题目条件,则为本题的一个答案,若全部情况都验证完后均不符合题目条件,则本题无解。

百钱买白鸡,这是一个经典的不定方程求解问题。问题如下:公鸡5元一只,母鸡3元一只,小鸡1元三只。问:用100元钱买100只鸡,公鸡,母鸡,小鸡各买多少只?

题目分析:

假设,公鸡g只,母鸡m只,小鸡x只。

g+m+x=100

5g+3m+x/3=100

可以采用穷举法来求解。

取值范围为:0<=g<=20

                     0<=m<=33

                     0<=x<=100

int main()
{
    int g,m,x;
    for(g=0;g<=20;g++)
    {
        for(m=0;m<=33;m++)
        {
            x=100-g-m;
            if(15*g+9*m+x==300)
            {
                printf("%4d %4d %4d\n",g,m,x);
            }
        }
    }
    return 0;
}

递推法

从已知条件出发,逐步推出题目所要求的各中间结果和最后结果的算法即为递推法。

求n!

题目分析:

n!=n(n-1)!

首先计算出1!,计算2*1!,则推出2!,进一步推出3!,4!,。。。。n!

int main()
{
    int n,i;
    int sum=1;
    int flag=1;
    scanf("%d",&n);
    for(i=1;i<=n;i++)
    {
        sum*=flag*i;
    }
    printf("%d\n",sum);
    return 0;
}

求菲波那切数列的第n项。这个数列有如下特点,第1,第2个数为1,从第3个数开始,每个数是前两个数之和,其数列为:1,1,2,3,5,8,.........

题目分析:

f1=1               n=1

f2=1               n=2

f3=f1+f2         n>=3

#include<stdio.h>

int main()
{
    int f1=1,f2=1,f3;
    int i,n;
    scanf("%d",&n);
    for(i=3;i<=n;i++)
    {
        f3=f2+f1;
        f1=f2;
        f2=f3;
    }
    printf("%d\n",f3);
    return 0;
}

 

常用的循环程序的设计方法

标签:can   范围   color   分析   strong   ret   ...   经典的   推出   

原文地址:https://www.cnblogs.com/2228212230qq/p/8439830.html

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