查看: 1979|回复: 13
|
写个程序解决猴子吃香蕉的问题。
[复制链接]
|
|
用 C 语言解决猴子吃香蕉问题:
猴子第一天摘下N 条香蕉,当时就吃了一半,还不过瘾,就又吃了一条。第二天又将剩下的香蕉吃掉一半,又多吃了一条。以后每天都吃前一天剩下的一半多一条。到第10天在想吃的时候,就剩一条香蕉了。求出第一天共摘下来多少条香蕉?
[ 本帖最后由 rothmans 于 8-6-2009 09:41 AM 编辑 ] |
|
|
|
|
|
|
|
发表于 5-6-2009 12:47 PM
|
显示全部楼层
1534 条 |
|
|
|
|
|
|
|
发表于 5-6-2009 08:05 PM
|
显示全部楼层
|
|
|
|
|
|
|
楼主 |
发表于 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
|
显示全部楼层
- // 8 Jun 2009, By PIC@cArI
- #include <16F628A.h>
- #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 main()
- {
- int i;
- int16 banana;
- // initial value, left 1 banana
- banana=1;
- for(i=9;i>0;i--)
- {
- printf( "\n\rDay %u, banana= %ld", i +1, banana);
- banana=(banana+1)*2;
- }
- printf( "\n\rDay %u, Total banana= %ld", i +1, banana);
- }
复制代码 运行结果:
|
|
|
|
|
|
|
|
楼主 |
发表于 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
|
显示全部楼层
|
|
|
|
|
|
|
发表于 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);
} |
评分
-
查看全部评分
|
|
|
|
|
|
|
发表于 13-8-2009 10:05 PM
|
显示全部楼层
|
|
|
|
|
|
|
发表于 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
|
显示全部楼层
|
|
|
|
|
|
|
发表于 13-8-2009 11:46 PM
|
显示全部楼层
|
|
|
|
|
|
| |
本周最热论坛帖子
|