当前位置: 代码迷 >> 综合 >> 杭电OJ100题——2009-2011
  详细解决方案

杭电OJ100题——2009-2011

热度:24   发布时间:2023-12-15 13:37:21.0

求数列的和

Problem Description

数列的定义如下:
数列的第一项为n,以后各项为前一项的平方根,求数列的前m项的和。

 Input

输入数据有多组,每组占一行,由两个整数n(n<10000)和m(m<1000)组成,n和m的含义如前所述。

 Output

对于每组输入数据,输出该数列的和,每个测试实例占一行,要求精度保留2位小数。

 Sample Input

81 4 
2 2

Sample Output

94.73 
3.41
#include<iostream>
#include<malloc.h>
#include<cmath>
#include<iomanip>
using namespace std;int main(){int m,n;double sum=0;while(cin>>n>>m){double* arry = (double*)malloc(m*sizeof(double));arry[0]=n;for(int i=1;i<m;i++)arry[i]=sqrt(arry[i-1]);for(int i=0;i<m;i++)sum += arry[i];cout<<setiosflags(ios::fixed)<<setprecision(2)<<sum<<endl;sum=0;}return 0;
}

水仙花数

Problem Description

春天是鲜花的季节,水仙花就是其中最迷人的代表,数学上有个水仙花数,他是这样定义的:
“水仙花数”是指一个三位数,它的各位数字的立方和等于其本身,比如:153=1^3+5^3+3^3。
现在要求输出所有在m和n范围内的水仙花数。

 Input

输入数据有多组,每组占一行,包括两个整数m和n(100<=m<=n<=999)。

 Output

对于每个测试实例,要求输出所有在给定范围内的水仙花数,就是说,输出的水仙花数必须大于等于m,并且小于等于n,如果有多个,则要求从小到大排列在一行内输出,之间用一个空格隔开;
如果给定的范围内不存在水仙花数,则输出no;
每个测试实例的输出占一行。

 Sample Input

100 120 
300 380

 Sample Output

no 
370 371
#include<iostream>
#include<malloc.h>
#include<cmath>
using namespace std;int main(){//记录个位,十分位,百分位的值int a=0,b=0,c=0;//记录水仙花数的个数int k=0;int m,n;while(cin>>m>>n){int* arry = (int*)malloc((n-m+1)*sizeof(int));for(int i=m;i<=n;i++){a=i%10;b=(i/10)%10;c=i/100;if(i==pow(a,3)+pow(b,3)+pow(c,3)){arry[k]=i;++k;}}if(k==0)cout<<"no"<<endl;else{for(int i=0;i<k-1;i++)cout<<arry[i]<<" ";cout<<arry[k-1]<<endl;}a=0;b=0;c=0;k=0;}
}

 此题对格式要求很严格啊,一开始我多输出了一个空格就提示我Presentation Error

多项式求和

Problem Description

多项式的描述如下:
1 - 1/2 + 1/3 - 1/4 + 1/5 - 1/6 + ...
现在请你求出该多项式的前n项的和。

 Input

输入数据由2行组成,首先是一个正整数m(m<100),表示测试实例的个数,第二行包含m个正整数,对于每一个整数(不妨设为n,n<1000),求该多项式的前n项的和。

 Output

对于每个测试实例n,要求输出多项式前n项的和。每个测试实例的输出占一行,结果保留2位小数。

 Sample Input

2 
1 2Sample Output
1.00 
0.50
#include<iostream>
#include<iomanip>
using namespace std;int main(){int m;cin>>m;while(m--){int n;double sum=0,a=0;cin>>n;for(int i=1;i<=n;i++){if(i%2==0){a=i;sum -= 1/a;}else{a=i;sum += 1/a;}}cout<<setiosflags(ios::fixed)<<setprecision(2)<<sum<<endl;}
}

 

  相关解决方案