hoj2186 - 悼念512汶川大地震遇难同胞——一定要记住我爱你

题目链接:hoj2186
这题不是难题,一开始处理数据,得到三个数是没什么问题的,出问题的是后面,每一个小队十个人派一个向导,不足十个人则也派一位。关于这一段的处理,很明显,原来的思路是比较乱的,安静坐下来,这个其实很好处理。
//首先将这个计算出来的数划分范围,
//如果是小于等于10的数据只需直接加一 (小于10的取余是自身,且必小于十则可默认为1)
(而10的话取余为0,除10结果为1).
// 如果不是,则说明该数整除10大于0,那么需要接着判断该数是否存在余数,若存在接着加一
//三个数据判断根据相同

# include <iostream>
# include <math.h>
using namespace std;
int main() {
    int num;
    cin >> num;
    while (num--) {
        double x1 = 0;
        cin >> x1;
        if (x1 < 10 || x1>1000) {
            continue;
        }
        int num1, num2, num3;
        num1 = x1 / 2.0;
        num2 = (x1 - num1) * 2.0 / 3;
        num3 = (x1 - num1 - num2);
        //cout << num1 << " " << num2 << " " << num3 << endl;
        int z1 = 0, z2 = 0, z3 = 0;
		if (num1<=10) {
        	z1+=1;
           
        }
        else {
        	z1+=num1/10;
        	if(num1%10>0)
            z1++;
        }
         if (num2<=10) {
        	z2+=1;
           
        }
        else {
        	z2+=num2/10;
        	if(num2%10>0)
            z2++;
        }
         if (num3<=10) {
        	z3+=1;
           
        }
        else {
        	z3+=num3/10;
        	if(num3%10>0)
            z3++;
        }
        
        cout << z1+z2+z3 << endl;
        //int sum = ceil(num1 / 10.0) + ceil(num2/ 10.0) + ceil(num3 / 10.0);
        //cout << sum << endl;
    }
    return 0;
}

ps:关于ceil()

# include <iostream>
# include <math.h>
using namespace std;
int main() {
    double num;
  //  cin >> num;
    while(cin>>num){
    	cout<<ceil(num)<<endl;//向上取整(小于原来的数值) 
    	cout<<floor(num)<<endl;//向下取整(大于原来的数值) 
    	cout<<round(num)<<endl;//四舍五入取整 4.56 取5  4.45 取4 
	} 
    return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值