北大 acm 1003 wrong answer

来源:百度知道 编辑:UC知道 时间:2024/05/31 17:07:50
#include<iostream>
using namespace std;
int main()
{
float a,i;
while(cin>>a&&a!=0)
{
float sum=0;
for(i=2;a>sum;i++)
sum+=1/i;
cout<<i-2<<" cards";
}
return 0;
}

如果我没看错的话
你的应该是输出错了
应该是
cout<<i-2<<" card(s)"<<endl;
下面是我写的程序,
#include <iostream>
#include <vector>

using namespace std;

int main()
{
vector<int> store;
float sum=0,input=0;
int i=2;
cin>>input;
while(input>=0.01)
{
while(sum<input)
{
sum+=1.0/i;
i++;
}
store.push_back(i);
sum=0;
i=2;
cin>>input;
}
for(i=0;i<store.size();i++)
{
cout<<store[i]-2<<" card(s)"<<endl;
}
// system("pause");
return 0;
}