算法入门——错题集

一、C语言向上、向下取整问题

math库—— ceil函数是取上整,floor函数是取下整

ceil,用于返回大于或者等于指定表达式的最小整数,用法是double ceil。返回不小于 value 的下一个整数,value如果有小数部分则进一位;ceil返回的类型仍然是float,因为float值的范围通常比integer要大

练习:

根据邮件的重量和蒜头君是否选择加急计算邮费。计算规则:重量在 1000克以内(包括 1000克),基本费 8 元。

超过 1000克的部分,每 500克加收超重费 4 元,不足 500 克部分按 500 克计算;

如果蒜头君选择加急,多收 5 元。

输入格式

输入一行,包含一个正整数和一个字符,以一个空格分开,分别表示重量(单位为克,不超过 2⋅1052\cdot 10^52105)和是否加急。

如果字符是'y',说明选择加急;如果字符是'n',说明不加急。

#include <stdio.h>
#include <math.h>
int main(){
    int n,x;
    char ji;
    scanf("%d %c",&n,&ji);
    if(ji == 'y'){
        if(n < 1000){
            printf("13");
        }else{
            x = (int) ceil((double) (n-1000)/500);
            printf("%d", 13+ x * 4);
        }
    }else{
        if(n < 1000){
            printf("8");
        }else{
           x = (int) ceil((double) (n-1000)/500);
            printf("%d", 8+ x * 4);
        }
    }
    return 0;
}

猜你喜欢

转载自www.cnblogs.com/expedition/p/11286782.html