我觉得可能是我的代码不符合普遍的思路....
下面是我换了一种思路的代码,这个代码通过了OJ的测试
#include<iostream> using namespace std; int main() { int H; cin>>H; { int a=H/10;/*分两种情况 */ if(H%10==0)//最后一步刚好是上去的 cout<<a*2-1<<endl; else//先上去没有达到 滑下来了 又上去一次 cout<<a*2<<endl; } }
不过是个佬就知道这么写了....
希望有大佬能看出了我原来的代码的错误!!!先感谢您的指正了
第一种代码和第二种的代码区别在于,在1到9米的时候,第二种输出0天,第一种输出1天。
在其他长度的情况下,两种方法输出的结果一样,
从这种情况来看,我觉得错的不是你,你的代码没有任何问题,而是出OJ题目的人没有考虑好测试样例
又或者我们不能理解好题意?(0天是什么鬼)
不必纠结哟
@Conan-jine: 嗯谢谢鼓励ヾ(๑╹◡╹)ノ"....不过1到9我输出的也是1...
我的代码给大家带来困扰了还是赶快结贴吧.....要是有以后的小朋友在OJ上刷到这题题也纠结这种思路的时候也有个参照......
@Conan-jine: 不对不对我弄错了,原来您说的是我第二个代码,的确是有问题的!!!怎么这种代码还过了......
你这必然是错误的啊,100米,19天就完了而不是20天。。。
您是不是没有运行我的代码?我的结果的确是19
@一条C鱼: 我没有c++环境,没运行你的代码,细看了一下,好像没什么问题,学校判定的依据是什么?
@一条C鱼: 或者说,学校有测试用例?
@顾晓北: 嗯嗯,或许是因为不符合通例。这是真的迷.....还是感谢.....
你这个代码有缺陷,题目问的是第几天到达,所以只要那一天的白天到达了就行了,不用管晚上会掉多少。
而你的代码的意思是每天爬5米,结算的是每天晚上蜗牛总共爬了多少米。
问题就出来了,假如有一天白天蜗牛爬到了这个高度,但是晚上掉下来了,你的代码就会认为蜗牛没有爬到
嗯嗯,我考虑了这个问题,但是我的代码是前一天晚上走到离金字塔大于等于10m的地方才结束循环,所以当只剩10m时,我的循环会结束,最后再加1,这方面我是没有问题的。
@一条C鱼: 你试着把判断H的大小去掉,没必要,
@Conan-jine: 感谢.....但是还是没有用.....
我没有运行你的代码,不过有些建议,既然裁判说是结果错误,那我建议你输入一些临界值试试有没有错误,比如:1和999999999
好的感谢.....
int high;
cin>>high;
int day = 1;
int dis = 0;
while(1)
{
dis +=10;
if(dis>high)
{
cout<<day;
return ;
}
dis -=5;
day++;
}