C语言基本算法四穷举

             说实话,关于穷举呢。。。。。是属于非数值计算常用经典算法。。。。理解起来相对抽象。。。。需要逻辑与数字的结合。。。。。。

             但我相信各位只要多多钻研,算法不是您以后编程的一大问题。。。。。。(下面是英语时间。。。。哈哈哈哈哈哈)

             If the people we love are stolen from us, the way to have them live on, is to remember them. Building burn, people die, but real love is

forever.

                                                                                                                                                                                                                —— The Crow


                如果我们所爱的人从我们身边被偷走,要使他们继续留在我们身边,就要记住他们。建筑会被焚毁,人会死去,而真爱永存。——《乌鸦》


                 下面的例子是有关于水仙花数的小程序(同时也是学习穷举的经典):

   此为法一:

#include

int main(void)

{
    int a,b,c,d;
   
    for(d=100;d<=999;d++)           /*  循环    */

    {
        a=d/100;b=d/10%10;c=d%10;         /*  到这一步就是数学问题了  */

        if(a*a*a+b*b*b+c*c*c==d)

        printf("%d\n",d);
       
        }
}
 

  有法一当然就有法二啦。。。其实万变不离其宗的:

#include

int main(void)

{
    int a,b,c;         /*  法二与法一比较少定义了一个变量    */
   
    for(a=1;a<=9;a++)

    for(b=0;b<=9;b++)

    for(c=0;c<=9;c++)

    if(a*a*a+b*b*b+c*c*c==a*100+b*10+c)

    printf("%d\n",a*100+b*10+c);

}
 

关于变量问题,本博主有几句话与大家分享:

定义变量的时候就会分配 ,不过分配和释放的周期不同;

比如全局变量:程序开始时就分配,只要程序不退出,空间就不会被释放;

局部变量:函数调用时分配,函数退出时释放;

main下的变量int a,它也是main函数的局部变量,也是在main函数压栈的时候在栈里分配的空间。

关于栈(数据结构的知识)还是希望大家可以多看看书。。清华大学严蔚敏老师(公认的泰斗)与吴伟民老师的《数据结构与算法》就是很好的教材。。。。博主大学教材就是

这个。。。。真的很不错。。。。

好了,今天的博就到这里啦。。。还是那句话,只要博主有时间,一天一博或者多博没有问题。。。。。希望大家每天进步一点点。。。。


你可能感兴趣的:(C语言)