佳礼资讯网

 找回密码
 注册

ADVERTISEMENT

查看: 1861|回复: 13

写个程序解决猴子吃香蕉的问题。

[复制链接]
发表于 5-6-2009 12:37 PM | 显示全部楼层 |阅读模式
用 C 语言解决猴子吃香蕉问题:

猴子第一天摘下N 条香蕉,当时就吃了一半,还不过瘾,就又吃了一条。第二天又将剩下的香蕉吃掉一半,又多吃了一条。以后每天都吃前一天剩下的一半多一条。到第10天在想吃的时候,就剩一条香蕉了。求出第一天共摘下来多少条香蕉?   

[ 本帖最后由 rothmans 于 8-6-2009 09:41 AM 编辑 ]
回复

使用道具 举报


ADVERTISEMENT

发表于 5-6-2009 12:47 PM | 显示全部楼层
1534 条
回复

使用道具 举报

发表于 5-6-2009 08:05 PM | 显示全部楼层
1534...
你该不会要用8051来写?
回复

使用道具 举报

 楼主| 发表于 8-6-2009 09:29 AM | 显示全部楼层
原帖由 fritlizt 于 5-6-2009 08:05 PM 发表
1534...
你该不会要用8051来写?


那就用 c 语言吧!
回复

使用道具 举报

发表于 8-6-2009 09:53 AM | 显示全部楼层
原帖由 rothmans 于 8-6-2009 09:29 AM 发表


那就用 c 语言吧!

你是讲visual C++?
这个解决猴子吃香蕉的问题的程序应该没有涉及MCU吧。。。
回复

使用道具 举报

发表于 8-6-2009 10:17 AM | 显示全部楼层
  1. // 8 Jun 2009, By PIC@cArI
  2. #include <16F628A.h>
  3. #fuses   HS, NoPROTECT,NoWDT,put,brownout,nolvp
  4. #use delay(clock=20000000)//,RESTART_WDT) // 20 Mhz
  5. #use rs232(baud=9600, xmit=PIN_B2, rcv=PIN_B1)

  6. void  main()  
  7. {  
  8.    int   i;  
  9.    int16 banana;  
  10.    // initial value, left 1 banana
  11.    banana=1;
  12.    for(i=9;i>0;i--)
  13.    {
  14.        printf( "\n\rDay %u, banana= %ld", i +1, banana);
  15.        banana=(banana+1)*2;
  16.    }
  17.    printf( "\n\rDay %u, Total banana= %ld", i +1, banana);   
  18. }
复制代码
运行结果:
回复

使用道具 举报

Follow Us
 楼主| 发表于 8-6-2009 12:26 PM | 显示全部楼层
原帖由 pic 于 8-6-2009 10:17 AM 发表
// 8 Jun 2009, By PIC@cArI
#include
#fuses   HS, NoPROTECT,NoWDT,put,brownout,nolvp
#use delay(clock=20000000)//,RESTART_WDT) // 20 Mhz
#use rs232(baud=9600, xmit=PIN_B2, rcv=PIN_B1)

void  ma ...


绝对是对的,可惜我不是版主,不然就加你分了。
回复

使用道具 举报

发表于 8-6-2009 01:46 PM | 显示全部楼层
原帖由 rothmans 于 8-6-2009 12:26 PM 发表
绝对是对的,可惜我不是版主,不然就加你分了。

其他人可以挑战其他的方法。。。
我加分给他, 但要象我这样的做法, 模拟, 给结果。
回复

使用道具 举报


ADVERTISEMENT

发表于 14-6-2009 12:18 PM | 显示全部楼层
原帖由 pic 于 8-6-2009 10:17 AM 发表
// 8 Jun 2009, By PIC@cArI
#include
#fuses   HS, NoPROTECT,NoWDT,put,brownout,nolvp
#use delay(clock=20000000)//,RESTART_WDT) // 20 Mhz
#use rs232(baud=9600, xmit=PIN_B2, rcv=PIN_B1)

void  ma ...


用CCS写真是太方便了.
如果用ASM写, 单单PRINTF就写死人
看来我也要研究用CCS写PIC了.
回复

使用道具 举报

发表于 13-8-2009 07:34 AM | 显示全部楼层
#include<stdio.h>

main()
{
        int n=1;//taked amount ofbanana
        int a;
        for(a=9;a>0;a--)
        {
                n=(n+1)*2;
        }
        printf("%d",n);
}

评分

参与人数 1积分 +50 收起 理由
fritlizt + 50

查看全部评分

回复

使用道具 举报

发表于 13-8-2009 10:05 PM | 显示全部楼层
原帖由 abue 于 13-8-2009 07:34 AM 发表
#include

main()
{
        int n=1;//taked amount ofbanana
        int a;
        for(a=9;a>0;a--)
        {
                n=(n+1)*2;
        }
        printf("%d",n);
}


不错, 虽然看起来比较像给电脑的。。。。
加分奖励
回复

使用道具 举报

发表于 13-8-2009 10:41 PM | 显示全部楼层
类似的问题可以在这里找到。先要注册
http://projecteuler.net/
第一题
If we list all the natural numbers below 10 that are multiples of 3 or 5, we get 3, 5, 6 and 9. The sum of these multiples is 23.

Find the sum of all the multiples of 3 or 5 below 1000.

然后把答案post 上去。
不同人不同做法。 只要答案对就能了。 可以来硬的(就是for loop 一个一个试), 也能慢慢思考, 然后用自己的algorithm 算。 虽然说电脑运行很快。 但是有时来硬的都不行。 从而了解到, 不同写法带来的不同效能。 然后搬入速度较慢的mcu, 就能更有效率的使用它。
回复

使用道具 举报

发表于 13-8-2009 11:16 PM | 显示全部楼层
原帖由 chan1314 于 13-8-2009 10:41 PM 发表
类似的问题可以在这里找到。先要注册
http://projecteuler.net/
第一题

然后把答案post 上去。
不同人不同做法。 只要答案对就能了。 可以来硬的(就是for loop 一个一个试), 也能慢慢思考, 然后用自己的al ...


要熊熊来的就用->
  1. for(i = 0; i <1000; i++){
  2.                  if (i%3 == 0){
  3.                         sum = sum + i;
  4.                         continue;
  5.                 }        
  6.                 if (i%5 == 0){
  7.                          sum = sum + i;
  8.                         continue;
  9.                 }
  10.         }
复制代码
可以选择不要这样凶。 可以用这个方法->
找3的倍数全部加起来。 5的倍数全部加起来。 减掉15倍数的总和。

sum3 = (3+999)*(999/3)/2
sum5 = .....
sum15 = ...

sum = sum3+sum5-sum15
对吗?

[ 本帖最后由 fritlizt 于 13-8-2009 11:46 PM 编辑 ]
回复

使用道具 举报

发表于 13-8-2009 11:46 PM | 显示全部楼层
http://projecteuler.net/的东西,
完全看不懂。。。
英文真够烂。。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

 

ADVERTISEMENT



ADVERTISEMENT



ADVERTISEMENT

ADVERTISEMENT


版权所有 © 1996-2023 Cari Internet Sdn Bhd (483575-W)|IPSERVERONE 提供云主机|广告刊登|关于我们|私隐权|免控|投诉|联络|脸书|佳礼资讯网

GMT+8, 20-4-2024 11:44 PM , Processed in 0.075351 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表