zoukankan      html  css  js  c++  java
  • pta编程总结3

    7-1 抓老鼠啊~亏了还是赚了? (20 分)
    某地老鼠成灾,现悬赏抓老鼠,每抓到一只奖励10元,于是开始跟老鼠斗智斗勇:每天在墙角可选择以下三个操作:放置一个带有一块奶酪的捕鼠夹(T),或者放置一块奶酪(C),或者什么也不放(X)。捕鼠夹可重复利用,不计成本,奶酪每块3元。
    聪明的老鼠呢?它们每天可能会派出一只老鼠到墙角,看看墙角有啥:
    若什么也没有(X),老鼠们就不高兴了(Unhappy),会有长达一天(也就是第二天)的不高兴期。在不高兴期间,不派出老鼠。不高兴期结束之后,派出老鼠。
    若有捕鼠夹(T),这只老鼠被引诱吃掉奶酪并被打死(Dead),老鼠们会有长达两天(也就是第二和第三天)的伤心期。在伤心期间,不派出老鼠。伤心期结束之后,派出老鼠。在这种情况下,抓到1只老鼠可获得奖励10元,但同时也耗费了一块奶酪。注意,如果某一天放置了捕鼠夹但老鼠没有出现,则没有耗费奶酪。
    若有奶酪(C),老鼠吃了奶酪会很开心(Happy!),会有长达两天(第二和第三天)的兴奋期。在兴奋期间,即使叠加了不高兴或者伤心,也必定派出老鼠。在这种情况下,没抓到老鼠,而且耗费了一块奶酪。注意,如果某一天放置了奶酪但老鼠没有出现,则奶酪可以下次再用,没有耗费。
    现在给你连续几天的操作序列,且已知第一天肯定会派出老鼠,请判断老鼠每天的状态,并计算盈利。
    代码:#include<stdio.h>
    int main (void)
    {
    int money=0, i=1;
    char op;
    while(op!='$'){
    scanf("%c", &op);
    if(op'T'){
    if(i>0){
    money=money+7;
    printf("D");
    if(i>2){
    i=1;
    }
    else{
    i=-2;
    }
    }
    else{
    printf("-");
    }
    }
    if(op
    'X'){
    if(i>0) {
    i=-1;
    printf("U");
    }
    else{
    printf("-");
    }
    }
    if(op=='C'){
    if(i>0) {
    i=2;
    money=money-3;
    printf("!");
    }
    else{
    printf("-");
    }
    }
    i++;
    }
    printf(" %d", money);
    }
    设计思路:1.开始,if输入如果开始为捕鼠夹,则耗费奶酪,但盈利7元
    2.if输入开始为什么都没有,则unhappy,
    3.if为奶酪,则接下两天继续执行三个任务中的一个,但亏损3元。
    结果:

  • 相关阅读:
    LeetCode 461. Hamming Distance
    LeetCode 442. Find All Duplicates in an Array
    LeetCode 448. Find All Numbers Disappeared in an Array
    LeetCode Find the Difference
    LeetCode 415. Add Strings
    LeetCode 445. Add Two Numbers II
    LeetCode 438. Find All Anagrams in a String
    LeetCode 463. Island Perimeter
    LeetCode 362. Design Hit Counter
    LeetCode 359. Logger Rate Limiter
  • 原文地址:https://www.cnblogs.com/xzsx/p/10411953.html
Copyright © 2011-2022 走看看