盗梦空间

《盗梦空间》是一部精彩的影片,在这部电影里,Cobb等人可以进入梦境之中,梦境里的时间会比现实中的时间过得快得多,这里假设现实中的3分钟,在梦里就是1小时。

然而,Cobb他们利用强效镇静剂,可以从第一层梦境进入第二层梦境,甚至进入三层,四层梦境,每层梦境都会产生同样的时间加速效果。那么现在给你Cobb在各层梦境中经历的时间,你能算出现实世界过了多长时间吗?

比如,Cobb先在第一层梦境待了1个小时,又在第二层梦境里待了1天,之后,返回第一层梦境之后立刻返回了现实。

那么在现实世界里,其实过了396秒(6.6分钟)


做这道题是因为这道题太好玩了。
如果进入一层梦他的时间会增加,按公式增加,你只要判断他在哪一层梦中,并对输入指令做出处理即可,是到非常可爱的题。


代码如下:
#include<stdio.h>
02. #include<math.h>
03. #include<string.h>
04. int main()
05. {
06. int T,M;
07. double s,real;
08. char a[100];
09. char b[100];
10. char c[100];
11. scanf("%d",&T);
12. getchar();
13. while(T--)                      //T组输入              
14. {
15. scanf("%d",&M);
16. getchar();
17. real=0;
18. double k=0;
19. while(M--)                  //指令数量
20. {
21. scanf("%s",a);
22. int j;
23. if((a[0]=='I'&&a[1]=='N')||(a[0]=='O'&&a[1]=='U'&&a[2]=='T'))
24. {
25. for(j=0; j<strlen(a); j++)      //用b[]记录这次指令,留作以后判断用
26. b[j]=a[j];
27. if(a[0]=='I'&&a[1]=='N')            //如果是IN的话,k++,k是梦的层数。
28. k++;
29. if(a[0]=='O'&&a[1]=='U'&&a[2]=='T')   //如果是OUT的话,k--.
30. k--;
31. }
32. if(a[0]=='S'&&a[1]=='T'&&a[2]=='A'&&a[3]=='Y'&&b[0]=='I'&&b[1]=='N')
33. {
34. scanf("%lf",&s);        //b[]是上一层指令,如果这一层指令是stay且上一层指
35. s*=60;                  //是in的话 就输入在这一层所呆的时间,并且通过k计算
36. real+=s*(1/pow(20,k));  //现实时间。
37.  
38. }
39. else if(a[0]=='S'&&a[1]=='T'&&a[2]=='A'&&a[3]=='Y'&&b[0]=='O'&&b[1]=='U'&&b[2]=='T')
40. {
41. scanf("%lf",&s);        //与上述同理。
42. s*=60;
43. real+=s*(1/pow(20,k));
44. }
45. }
46. printf("%.lf\n",real);
47. }
48. return 0;
49. }


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值