K-计算面积
链接:登录—专业IT笔试面试备考平台_牛客网
来源:牛客网
题目描述
小w给你三种图形,可能是平行四边形,三角形,梯形,对于给定的TTT个图形,你需要依次回答每个图形的面积,保证答案为整数。
输入描述:
共T+1T+1T+1行。第一行一个整数T(1≤T≤105)T(1\\leq T\\leq 10^5)T(1≤T≤105),表示数据组数。接下来TTT行,每行333或444个整数,第一个整数aaa代表图形的种类,a=1a=1a=1代表平行四边形,a=2a=2a=2代表三角形,a=3a=3a=3代表梯形。若a=1a=1a=1或a=2a=2a=2,则该行有两个参数bbb,ccc,分别代表平行四边形或三角形的底和高。若a=3a=3a=3,则该行有三个参数bbb,ccc,ddd,分别代表梯形的上底,下底和高。保证面积不会超过10910^9109
输出描述:
共TTT行。对于每组数据,输出对应图形的面积。
示例1
输入
复制1 1 1 1
1 1 1 1
输出
复制1
1
快来参加“大连大学2023年4月程序设计竞赛(同步赛)”~ 比赛时间:2023-04-15 10:00:00 - 2023-04-15 15:00:00,比赛时长:5小时,比赛地址:https://ac.nowcoder.com/acm/contest/55416。
//注本人的为错误代码,未通关。
//当时根据通关人数最多做的此题,直到比赛结束,从通关人数上来说,这题应该算签到题,不过不太理解错在哪里,题目要求输出整数,从样例来说,结果是0.5,题目输出为1,那么我当时想这个涉及到了向下取整,结果还是不对,然后就不知道如何做了,请大家指教。
#include<bits/stdc++.h>
using namespace std;
int main(){int t,a,b,c,d;cin>>t;while(t--){double s=0;cin>>a>>b>>c>>d;if(a==1||a==2){s=b*c/2.0;}else {s=(b+c)*d/2.0;}cout<<ceil(s)<<endl;}return 0;
}