[HDOJ 1012] u Calculate e (简单题)

5467168    2012-03-04 17:59:34      Accepted        1012      0MS  272K        669 B       C++     ajioy

此题虽水,但陷阱不容小觑。而且看题时要留心,不要像我一样,“- ------------"看成了"_  ___________",无辜地WA了几次。

#include <iostream>
#include <iomanip> // 控制格式用 
using namespace std;
int factor[10] = {1,1};//阶乘结果 
double e[10]={1}; //计算e的结果 
int main(){
	int n;
	for(int i = 2; i <= 9; ++i){ //计算所有阶乘 
		factor[i] = factor[i-1] * i;
	}
	cout << "n e" << endl
	     << "- -----------" << endl;//注意,是中横,我没留心看以为是底横_,白白WA了几次 
    for(int i = 1; i <= 10; ++i){
           e[i] = e[i-1] + double(1.0) / factor[i];
           if(i == 8){  //特别注意,第8位的零要保留。因此也WA了一次 
           	cout << i - 1 << " " << setprecision(10) << setiosflags(ios::showpoint) <<  e[i-1] << endl;
           }//setiosflags(ios::showpoibt)强制显示无效0 
           else{
           cout << i - 1 << " " <<  setprecision(10) //连同小数点一起保留10位,小数共有9位 
		   <<  e[i-1] << endl;
           }
    }
}


 

你可能感兴趣的:([HDOJ 1012] u Calculate e (简单题))