Fried Fish(向上取整问题)ceil函数

    xiaoxiao2021-03-25  95

    2016-2017 ACM中部地区的俄罗斯四分之一决赛编程比赛 A.油炸鱼 这是一个众所周知的事实,雷宾斯克曾经是一个伟大的钓鱼点。人们 住在这个小镇有早餐,午餐和晚餐的鱼。无论他们能做什么 不吃自己,他们运到其他城镇。因此,优化 鱼烹饪过程是一个重要的任务。 让我们假设今天我们抓住了相同大小的N条鱼。我们的煎锅适合 K鱼。另一个假设是,每条鱼的每一面都必须油炸一 分钟。作为一个提醒,鱼通常是两面炸。 现在让我们计算我们需要炸鱼所有的鱼的最短时间。 限制 1≤N,K≤500 输入 输入文件包含两个整数N和K - 捕获的鱼的数量和 可以装入我们的煎锅的鱼的数量。 输出 输出文件必须包含一个整数 - 最小时间(分钟) 需要炸鱼所有的鱼。 例子 Input.txt       Output.txt 3 2              3

    4 2              4

    // // main.cpp // 160610 // // Created by liuzhe on 16/6/10. // Copyright © 2016年 my_code. All rights reserved. // #include <iostream> #include <algorithm> #include <cstdio> #include <cmath> #include <cstring> #include <string> using namespace std; int main(int argc, const char * argv[]) { freopen("input.txt","r",stdin); freopen("output.txt","w",stdout); int n,k; while(scanf("%d%d",&n,&k)==2) { int ans=0; if(n<=k) ans = 2; else { if(n*2%k==0) ans=n*2/k; else ans=n*2/k+1; } printf("%d\n",ans); } return 0; } #include<cstdio> #include <iostream> #include <cmath> #define ll long long using namespace std; int main() { freopen("input.txt","r",stdin); freopen("output.txt","w",stdout); int n,k; while(scanf("%d%d",&n,&k)==2) { if(n<=k) cout<<"2"<<endl; else cout<<(ll)(ceil((double)n*2.0/(double)k))<<endl; } return 0; } #include <math.h> double ceil(double x); double floor(double x); double round(double x); ceil(x)返回不小于x的最小整数值(然后转换为double型)。 floor(x)返回不大于x的最大整数值。 round(x)返回x的四舍五入整数值。 给个例子test.c: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 #include <stdio.h> #include <math.h> int main(int argc, const char *argv[]) { float num = 1.4999; printf("ceil(%f) is %f\n", num, ceil(num)); printf("floor(%f) is %f\n", num, floor(num)); printf("round(%f) is %f\n", num, round(num)); return 0; } 编译:$cc test.c -lm 执行:$./a.out ceil(1.499900) is 2.000000 floor(1.499900) is 1.000000 round(1.499900) is 1.000000

    转载请注明原文地址: https://ju.6miu.com/read-23786.html

    最新回复(0)