列表

详情


BC64. 牛牛的快递

描述

牛牛正在寄快递,他了解到快递在 1kg 以内的按起步价 20 元计算,超出部分按每 kg 1元计算,不足 1kg 部分按 1kg计算。如果加急的话要额外付五元,请问牛牛总共要支付多少快递费

输入描述

第一行输入一个单精度浮点数 a 和一个字符 b ,a 表示牛牛要寄的快递的重量,b表示牛牛是否选择加急,'y' 表示加急 ,'n' 表示不加急。

输出描述

输出牛牛总共要支付的快递费用

示例1

输入:

1.5 y

输出:

26

示例2

输入:

0.7 n

输出:

20

原站题解

C 解法, 执行用时: 2ms, 内存消耗: 296KB, 提交时间: 2022-07-14

#include <stdio.h>
int main()
{
    float a;
    char b;
    int s;
    scanf("%f %c",&a,&b);
    if(a<=1)
    {
        if(b=='y')
            printf("25");
        else
            printf("20");
    }
    else
    {
        if(b=='y')
        {
          if(a==(int)a)
              printf("%d",25+(int)a-1);
            else
                printf("%d",25+(int)a);
        }
        else
        {
            if(a==(int)a)
              printf("%d",20+(int)a-1);
            else
                printf("%d",20+(int)a);
        }
    }
    return 0;
}

C 解法, 执行用时: 2ms, 内存消耗: 296KB, 提交时间: 2022-03-07

#include<stdio.h>
#include<math.h>
int main()
{
    float a = 0;
    char ch = 0;
    int sum = 20;
    int b = 0;
    scanf("%f %c",&a,&ch);
    if(a < 1)
    {
        sum = 20;
    }
    else if(a > 1)
    {
        b = ceil(a);
        sum += b - 1;
    }
    if(ch == 'y')
        sum += 5;
    printf("%d\n",sum);
    return 0;
}

C 解法, 执行用时: 2ms, 内存消耗: 300KB, 提交时间: 2022-05-10

#include <stdio.h>

int main()
{
    float a = 0;
    char b;
    scanf("%f %c",&a,&b);
    int c,f;
    c = (int)((a-1.0)*10)%10;
    f = (int)(a-1)*1;
    if(a<=1){
        if(b=='y'){
            printf("25\n");
        }else{
            printf("20\n");
        }
    }else{
        if(b=='y'&&c==0){
            printf("%d\n",25+f);
        }else if(b=='y'&&c!=0){
            printf("%d\n",26+f);
        }else if(c==0){
            printf("%d\n",20+f);
        }else{
            printf("%d\n",21+f);
        }
    }
    return 0;
}

C 解法, 执行用时: 2ms, 内存消耗: 300KB, 提交时间: 2022-04-23

#include <stdio.h>
#include <math.h>

int main(){
    float a;
    int price=0;
    char b;
    scanf("%f %c", &a,&b);
    if(a <= 1){
        price = 20;
    }else{
        price = 20 + (ceil(a) - 1) * 1;
    }
    
    if('y' == b)
        price = price + 5;
    printf("%d", price);
    return 0;
}

C 解法, 执行用时: 2ms, 内存消耗: 300KB, 提交时间: 2022-03-12

#include<stdio.h>
int main()
{
    float w;
    char c;
    scanf("%f %c",&w,&c);
    int price;
    if(w<=1.0) price=20;
    else price=20+ceil((w-1)*1);
    
    if(c=='y') price+=5;
    printf("%d",price);
    return 0;
}

上一题