程序基本算法习题解析 能解决多少任务

题目:

小明参加聚会前需要完成一些任务,已知解决第i个任务的时间为5i分钟,去聚会的路程花费一些时间,假设聚会持续4h,若为了参加聚会(哪怕只有一瞬间),小明从聚会开始时解决任务,最多解决多少任务。

思路:

将路程花费的时间减掉,即为解决任务必须小于的时间。遍历所有情况(1个任务~10个任务),求所需时间和,第一次使得解决任务的时间大于剩余时间的任务数减1,即为所求结果。

代码如下:

// Chapter11_4.cpp : Defines the entry point for the application.
// 能解决多少任务
// 小明参加聚会前需要完成一些任务,已知解决第i个任务的时间为5i分钟,
// 去聚会的路程花费一些时间,假设聚会持续4h,若为了参加聚会(哪怕只有一瞬间),
// 小明从聚会开始时解决任务,最多解决多少任务

#include "stdafx.h"
#include<iostream>
using namespace std;

int main()
{
	int totalTime = 240; //聚会持续时间
	int leftTime; //除去路程花费,剩余的时间
	int ans = 10; //解决的任务数
	int sum = 0; //解决任务的时间和
	int c,d; //待解决的任务数和小明去聚会要花费的时间
	cout << "输入待解决的任务数和小明去聚会要花费的时间:";
	cin >> c >> d;
	leftTime = totalTime - d;
	//每加一个任务,计算所需总时长
	for(int i=1;i<=10;i++)
	{
		sum = sum + 5*i;
		//若任务加到刚好超过剩余时间
		if(sum > leftTime)
		{
			//则减去一个任务就是满足条件下最多解决的任务
			ans = i - 1;
			break;
		}
	}
	cout << "小明最多能解决的任务数为:" << ans << endl;
	system("pause");
	return 0;
}

运行结果如下:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值