1计算小球的高度。(10分)
题目内容:
一个小球从100米高处落下,每次落地后反弹回原高度的一半,再落下。求它在第n次落地时共经过多少米?第n次反弹多高?n 的值由用户输入取值范围是1<=n<=10 。
输入格式:
输入n的值
输出格式:
先输出第n次落地时共经过多少米,然后再输出反弹的高度。注意输出的数值小数点后保留4 位小数,
输出语句中的标点符号是中文标点符号。
输入样例:
10
输出样例:
第10次落地时,共经过299.6094米;反弹高度是0.0977米。
时间限制:500ms内存限制:32000kb
#include<iostream>
#include<iomanip>
#include<cmath>
using namespace std;
int main(){
int n,i;
double h=0,sh=100;cin>>n;
for( i=0;i<n;i++)
{
sh+=2*h;h=100*pow(0.5,i+1);
}
cout<<"第"<<n<<"次落地时,共经过"<<setiosflags(ios::fixed)<<setprecision(4)<<sh<<"米"<<";反弹高度是"<<setiosflags(ios::fixed)<<setprecision(4)<<h<<"米。"<<endl;}
2计算表达式的值。(10分)
题目内容:
编写程序实现计算下列表达式的值。
f(x)=1/n(12+22+32+⋯+n2) (n为整数,由用户输入)
注意:式中n为1,2,3,… ,中取值,n^2为n的平方。
如果n的值小于等于0则表达式的值为0 。
输入格式:
输入n 的值
输出格式:
输出计算的表达式的值。
输入样例:
15
输出样例:
表达式的值=82.6667
时间限制:500ms内存限制:32000kb
#include<iostream>
#include<iomanip>
#include<cmath>
using namespace std;
int main(void){
double n;double s;cin>>n;
if(n<=0)
s=0;
else s=(n+1)*(2*n+1)/6;
cout<<"表达式的值="<<s<<endl;}
3进制转换(10分)
题目内容:
请编写程序,将任意长度的5进制整数转换为十进制数,并输出转换结果,如果输入数据非法则显示Input error。
注意Input error之间有一个英文空格。
输入格式:
输入要转换的数
输出格式:
输出转换的结果。
输入样例1:
1234
输出样例1:
194
输入样例2:
789
输出样例2:
Input error
时间限制:500ms内存限制:32000kb
#include<iostream>
#include<iomanip>
#include<cmath>
using namespace std;
int main(void){
int n,s=0,i=0,flag=0;cin>>n;
while(n!=0)
{
if(n%10>4)
{
flag=1;break;}
s+=(n%10)*pow(5,i);
n/=10;i++;
}
if(flag==1)
cout<<"Input error"<<endl;
else cout<<s<<endl;
}