2174 - 计算分数序列的和(I)
时间限制 : 1 秒
内存限制 : 128 MB
有一个分数序列:
,求出这个数列的前N项之和.
题目输入
有多行数据,每行数据只有一个正整数N(N<=100),结果保留两位小数。
题目输出
输出N所对应的分数序列之和,每个输出占一行。
输入/输出样例
输入格式
5 8
输出格式
7.28 10.72
C语言解答
#include<stdio.h> int main(){ int N; while(scanf("%d",&N)!=EOF){ double z=2.0,m=1.0,t; int i; double sum=0.0; for(i=1;i<=N;i++){ sum=sum+z/m; t=z; z=z+1; m=t; } printf("%.2f\n",sum); } return 0; }
C++解答
#include <iostream> #include <iomanip> using namespace std; int main() { int n; double sum; while (cin>>n) { sum = 0; for (int i=1; i<=n; i++) { sum += 1 + (double)1/i; } cout <<setprecision(2) <<std::fixed<< sum<<endl; } return 0; }
Java解答
public class Main { public static void main(String[] args) { java.util.Scanner input = new java.util.Scanner(System.in); do { int n = input.nextInt(); double sum = 0; int n1 = 2; int n2 = 1; for (int i = 0;i < n;i++) { sum += n1*1.0/n2; n1++; n2++; } long b = Math.round(sum*100); double c = b/100.0; System.out.printf("%4.2f",sum); System.out.print("\n"); } while (input.hasNextInt()==true); } }