• 算法——猴子分桃


      想做些有关“算法”的练习题,在网上无意间看到了一道很经典的算法题——猴子分桃,于是百度了一下,才发现这道题的相关文档很多很多,但最多的也就是使用C++或者Java来解决这道题,而自己也是初次接触C++。

    1.先介绍一下C++使用最常见的编辑器——dev cpp.附上下载地址:(http://bloodshed-dev-c.en.softonic.com/download);

    2.

    3.接着选好所要下载好的地址;

    4.剩下的事情就是“一路默认”,直至安装完成。

    然后就剩启动Dev C++,启动完Dev c++后,就先新建一个项目吧:可以按ctrl+N或者直接点“文件”——“新建”——“源代码”;待你写好代码,然后就需要

    点击运行之后,先选择“运行”——“编译”——“运行”或者直接点击“运行”——“编译运行”就可以运行项目了。

    还有一种新建项目的方法:

    “文件”——“新建”——“工程”,然后按上图选择Console Application,再写好文件名即可。运行方法同上。只是首次在运行C++代码时,居然出现了“闪屏”的现象,最后原来是在return 0之前加上一句“ system("PAUSE"); ”,,,,,有的时候加上“getchar();”貌似也可以使程序正常运行。(两者的区别,我也不太懂。。。。)

    附上C++的第一道算法题:

      

        /**海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子凭据分为五份,多了一个,这只 * 猴子把多的一个扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分成五份,又多了 * 一个,它同样把多的一个扔入海中,拿走了一份,第三、第四、第五只猴子都是这样做的, 问海滩上原来最少有多少个桃子?**/

    运行C++代码:

     #include <stdio.h>
     #include <stdlib.h>
     
     int monkey_peach(int n)
     {
         int *p;
         int i;
     
         p = (int *)malloc(n * sizeof(int));
         if (p == NULL)
             return -1;
     
         p[0] = 1;
     
         while (1)
         {
             for (i = 1; i < n; i++)
             {
                 if ((p[i-1] * 5 + 1) % 4 != 0)
                     break;
                 p[i] = (p[i-1] * 5 + 1) / 4;
             }
     
             if (i >= n)
                 break;
             p[0]++;
         }
     
         for (i = 0; i < n; i++)
         {
             printf("%d ", p[i]);
         }
         printf("
    ");
         printf("peach count = %d.
    ", 5 * p[n-1] + 1);
         
         return 0;
     }
     
     int main()
     {
         monkey_peach(5);
         system("PAUSE"); 
         return 0;
     }

    只是现在看这段C++的代码,自己还欠缺理解,再研究研究……

    运行结果:

    突然也就觉得C++很神奇,愿自己以后多学学!

  • 相关阅读:
    设置导航条上的主题一颜色
    luogu_2158【题解】欧拉函数
    luogu_1313【题解】二项式定理
    【数论学习笔记】高斯消元
    luogu_2524【题解】康托展开
    luogu_1495【题解】中国剩余定理
    【数论学习笔记】 约数
    luogu_4430 luogu_4981【题解】 Cayley定理
    【数论学习笔记】质数
    【数论学习笔记】同余
  • 原文地址:https://www.cnblogs.com/zhengyeye/p/5606861.html
Copyright © 2020-2023  润新知