HNUST OJ 2206 小明的衣服

46 篇文章 23 订阅

 问题 C: 小明的衣服
时间限制: 1 Sec  内存限制: 128 MB

题目描述
小明有三件不用洗的神奇衣服。 
第一件是T恤,他会在温度不超过30℃时穿着; 
第二件是穿在T恤外的卫衣,他会在温度不超过15℃时穿着; 
第三件是穿在卫衣外的棉袄,他会在温度不超过0℃时穿着; 
小明当且仅当每天早上起床的时候更换衣服,且一定会在合适的温度穿合适的衣服。 
小明穿衣服和脱衣服每次都只能穿一件或脱一件。 
今天是15℃,小明穿着T恤和卫衣。给出未来n天的温度,且每天的温度不会变化,小明想知道他未来n天需要穿几次衣服,脱几次衣服。 

输入
输入第1行只有一个正整数T,表示有T组数据。 
对于每组数据的输入: 
第一行为1个整数n(1≤n≤105),表示未来n天。 
接着输入n个由空格分开的整数,第i个整数表示第i天的温度,该整数绝对值不超过40。 
保证输入的n的总和不超过105。 

输出
对于每组数据输出一行包含2个整数,分别代表穿衣服的次数和脱衣服的次数。 

样例输入
2
3
16 15 16
3
30 15 0

样例输出
1 2
2 1

 思路

1. 就是穷举,把情况列举出来

2.有个坑就是可以不穿衣服

#include <stdio.h>
#include <stdlib.h>
/*
定义变量
xiaoming代表当前衣服的件数
tuo代表拖衣服的次数
chuan代表穿衣服的次数
*/
int xiaoming,tuo,chuan;
//自定义函数
void chuantuo(int t){
    if(t <= 0){// 温度小于0 冷死了qwq
        if(xiaoming == 0){ //如果没穿衣服
            chuan += 3 ; //还要穿三件
        }else if(xiaoming==1){//如果穿了一件衣服
            chuan +=2 ; //还要穿二件
        }else if(xiaoming==2){//如果穿了二件衣服
            chuan++ ; //再穿一件
        }
        xiaoming = 3 ;
    } else if (t <= 15){
        if(xiaoming == 0){
            chuan += 2 ;
        }else if(xiaoming == 1){
            chuan++ ;
        }else if(xiaoming == 3){
            tuo++ ;
        }
        xiaoming = 2 ;
    }else if(t <= 30){
        if(xiaoming == 0){
            chuan++ ;
        }else if(xiaoming == 2){
            tuo++ ;
        }else if(xiaoming == 3){
            tuo += 2 ;
        }
        xiaoming = 1 ;
    }else if(t <= 40){
        if(xiaoming == 0){
        }else if(xiaoming == 1){
            tuo++ ;
        }else if(xiaoming == 2){
            tuo += 2 ;
        }else if(xiaoming == 3){
            tuo += 3 ;
        }
        xiaoming = 0;
    }
}
int main()
{
    int i,j,n,t,T;
    //输入
    scanf("%d",&T);
    for(i = 0 ; i < T ; i++){
        scanf("%d",&n);
        xiaoming = 2 ;
        tuo = 0 ;
        chuan = 0 ;
        for(j = 1 ; j <= n ; j++){
            scanf("%d",&t);
            chuantuo(t);
        }
        //输出
        printf("%d %d\n",chuan,tuo);
    }
    return 0;
}
 
/**************************************************************
    Problem: 2206
    User: 21XXXXXXXX
    Language: C
    Result: 正确
    Time:40 ms
    Memory:1120 kb
****************************************************************/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值