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

Posted challengor

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了常用的循环程序的设计方法相关的知识,希望对你有一定的参考价值。

穷举法

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

百钱买白鸡,这是一个经典的不定方程求解问题。问题如下:公鸡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;
}

 

以上是关于常用的循环程序的设计方法的主要内容,如果未能解决你的问题,请参考以下文章

VB程序设计的常用算法

201621123057 《Java程序设计》第9周学习总结

MCS-51单片机汇编语言程序设计

使用循环片段依赖关系模块化单活动Android应用程序

JAVA 1.8 理解面向对象程序设计

C#常用代码片段备忘