| 网站首页 | 业界新闻 | 群组 | 交易 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
乐学 会学 多求 善思千里之行 始于足下
共有 193 人关注过本帖
标题:怎样去理解这道题的思路
只看楼主 加入收藏
白茶清欢
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2018-12-2
结帖率:57.14%
  已结贴   问题点数:8  回复次数:2   
怎样去理解这道题的思路
挂盐水的时候,如果滴起来有规律,先是滴一滴,停一下;然后滴二滴,停一 下;再滴三滴,停一下...,现在有一个问题:这瓶盐水一共有VUL毫升,每一滴是D毫升,每一滴的速度是一秒(假设最后一滴不到D毫升,则花费的时间也 算一秒),停一下的时间也是一秒这瓶水什么时候能挂完呢?
输入:
输入数据占一行,由VUL和D组成,其中0< D< VUL< 5000。
输出:
请输出挂完盐水需要的时间。
样例输入:
10 1
样例输出:
13
2019-01-28 21:30
do8do8do8
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:沙滩
等 级:版主
威 望:5
帖 子:288
专家分:1456
注 册:2010-7-2
  得分:8 
因一滴就是一秒,所以VUL就至少需要VUL/D+(VUL%D?1:0)秒, VUL/D就是求VUL中有多少滴(每滴含有D毫升),若有剩余就算一秒 (VUL%D?1:0),VUL%D若等于0,就是没有剩余,取0秒,反之有剩余就取1秒,这是三目元算符。
加上暂停的次数total=i+VUL/D+(VUL%D?1:0),就是总共需要的时间:
#include <stdio.h>
#define VUL 10
#define D   1
int main()
{
    int total,i=0;
    int sum=0;
    do
    {
        i++;
        sum=sum+D*i;
        
    }while(sum<VUL);
   
    i--;//i为暂停的次数,在这里减一
    total=i+VUL/D+(VUL%D?1:0);
    printf("total=%d\n",total);
    return 0;
}

[此贴子已经被作者于2019-1-28 23:55编辑过]


不必非得需要什么才可以
2019-01-28 23:36
机器狗
Rank: 2
等 级:论坛游民
威 望:1
帖 子:6
专家分:14
注 册:2019-1-29
  得分:0 
好像与等差数列有关,求停的秒数Sn≤VUL<Sn+1,n-1秒.
2019-01-30 02:27







关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.039218 second(s), 8 queries.
Copyright©2004-2019, BCCN.NET, All Rights Reserved