问题标题: 酷町堂:3786 滴水穿石

0
1
已解决
赵奕帆
赵奕帆
初级守护
初级守护

题目描述 Description

有一块石头厚度为 n(1000~10000) 毫米,每个小时都会有一滴水低落在这个石头上。第一滴水会将石头的厚度减少 0.001 毫米,第二滴水会将石头的厚度减少0.002 毫米,以此类推。请计算最早在第几天水滴可以将石头击穿。(如果在第24个小时将石头击穿,则为第1天;如果是第25个小时,则为第2天。)

输入描述 Input Description

输入一个整数n(1000~10000),表示石头的厚度。

输出描述 Output Description

输出需要将石头击穿的最少天数。

样例输入 Sample Input

 

样例输入1:
1
------------------------------------------------
样例输入2:
10

样例输出 Sample Output

 

样例输出1:
1
------------------------------------------------
样例输出2:
6

要求:核心代码+思路!!!


1
已采纳
王雪阳
王雪阳
高级守护
高级守护

核心代码:

while(n>0)
    {
        a++;
        n-=b;
        b+=0.001;
    }
    if(a%24==0) cout<<a/24;
    else cout<<a/24+1;

a表示小时数,b表示每小时石头会减少的厚度,n表示石头的厚度。

思路:
每次石头都会减少相应的厚度,而每次减少的厚度都会加上0.001,石头需要减去厚度,这就是while循环里面的作用。

后面的判断是先看小时数是不是整天数,否则天数就要加一。

 求采纳!!!

 求采纳!!!

 求采纳!!!

​​​​​​​​​​​​​​

0
我要回答