您的位置:首页 > 其它

POJ 1003

2014-05-14 21:54 197 查看
这个题目是算无穷发散数列有多项时,其值刚大于输入的值。这题一开始想复杂了,想通过通式来计算,这样只需要算一次自然指数与1次加法,两次减法就可以了。

但是根据这样的思路写出来的程序,OJ判断WA,于是用for循环来做,虽然比较土,不过AC,AC代码如下:

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class poj1003 {

/**
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
while (true) {
String tmp = in.readLine().trim();
if(!tmp.equals("0.00")){
float result = Float.parseFloat(tmp);
float sum = 0f;
int i=1;
for(;sum<result;i++){
sum += 1f/(i+1);
}
System.out.println((i-1)+" card(s)");
}else{
break;
}
}

}
}

C++版本:

#include <iostream>
using namespace std;
int main()
{
float in = 0;
while(true)
{
int i=1;
float sum=0;
cin >> in;
if(in!=0.00)
{
for(;sum<in;i++)
{
sum += 1.00/(i+1);
}
cout << i-1 <<" "<<"card(s)"<<endl;
}
else
{
break;
}
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  POJ