#include <iostream>
using namespace std;
int main()
{
double VUL, D;
int time, i, flag;
while(cin >> VUL >> D)
{
time = 0;
i = 1;
flag = 0;
while(VUL > 0)
{
for(int j = 1; j <= i; j++)
{
if(VUL <= 0)
{
flag = 1;
break;
}
VUL -= D;
time++;
}
time++;
i++;
if(flag)
break;
}
cout << time - 1 << endl;
}
return 0;
}
厉害了,下边这个就是没有输出,扎心,求大佬。。。
#include<iostream>
using namespace std;
int main()
{
double VUL,D;
double a[10000];
double b[20000];//存储滴数和间隙
double suma[10000],sumb[10000];
int num;
a[1]=1;b[1]=1;suma[1]=1;sumb[1]=1;
while(cin>>VUL>>D)
{
int i=1;
for(i=1;i<=VUL/D;i++)
{
a[i]=i*D;//每次间隔滴水的时间
}
for(int j=1;j<=(2*i+1);j++)
{
if(j%2==0)
{
b[j]=1;
}
else
{
b[j]=a[(j+1)/2];
}
}
for(int k=1;k<=i;k++)
{
for(int j=1;j<=k;j++)
{
suma[k]+=a[j];//sum[1]是第一滴,sum[2]是第一滴+第二滴。。。。。
}
}
for(int j=1;j<=i;j++)
{
if(suma[j]<VUL&&suma[j+1]>VUL)
{
num=2*j+1;
}
else if(suma[j]==VUL)
{
num==2*j-1;
}
}
for(int k=1;k<=i;k++)
{
for(int j=1;j<=k;j++)
{
sumb[k]+=b[j];//sum[1]是第一滴,sum[2]是第一滴+第二滴。。。。。
}
}
cout<<sumb[num]<<endl;
}
return 0;
}