#include<stdio.h>
int main()
{
double v,d;
int i,time;
while(scanf("%lf%lf",&v,&d)==2)
{
time=0;
for(i=1;v>i*d;i++)
{
time=time+(i+1);
v=v-i*d;
}
if(v<=i*d)
{
while(v>0)
{
v=v-d;
time=time+1;
}
}
printf("%d\n",time);
}
return 0;
}
------解决方案--------------------
- C/C++ code
#include<iostream> #include<cmath> using namespace std; int main(){ double v,d; while(cin>>v>>d){ int b=ceil(v/d); cout<<ceil(((sqrt(1.+8*b)-1)/2+b-1))<<endl; } }
------解决方案--------------------
首先你要用好代码标签,然后你程序要实现什么功能,没有目的,一些纯数字逻辑的程序很少有人能仔细研究你的程序,最后不是程序问题的话这种像高数一样的程序错误可能需要你自己找
------解决方案--------------------
如下修改可以AC,但说不出确切理由。
#include<stdio.h>
int main()
{
double v,d;
int i,time;
while(scanf("%lf%lf",&v,&d)==2)
{
time=0;
for(i=1;v>i*d;i++)
{
time=time+(i+1);
v=v-i*d;
}
if(v<=i*d)
{
/*
while(v>0)
{
v=v-d;
time=time+1;
}
*/
int k = (int)(v/d);
time += k;
if ((v-d*k) > 1e-8) time++;
}
printf("%d\n",time);
}
return 0;
}