一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第n次落地时,共经过多少米?第n次反弹多高?
数据范围: 
一行,一个整数n (1<=n<=10)。
输出两个浮点数ans1,ans2。ans1为第n次落地时,共经过的距离;ans2为第n次反弹的高度。答案应与标准答案误差小于1e-5。两个数间以空格相间。
1
100.000000 50.000000
10
299.609375 0.097656
import java.util.Scanner;
public class Main{
public static void main(String[] src){
float high = 100.0f;
float sum = 0.0f;
Scanner scan = new Scanner(System.in);
if(scan.hasNextInt()){
int time = scan.nextInt();
sum = 100;
high = 50;
for(int i = 1; i < time; i++){
sum += (high * 2);
high = high / 2;
}
System.out.println(sum + " " + high);
}
}
} n = int(input()) d = 100 * (3 - 0.5 ** (n - 2)) h = 100 * 0.5 ** n print(d, h)
const readline = require('readline')
const rl = readline.createInterface({
input: process.stdin,
ouput: process.stdout
})
let inArr = []
rl.on('line', line=>{
if(!line) return
inArr.push(line.trim())
if(inArr.length === 1){
let n = +inArr[0]
let h =100
let f =200
let sum = 100
for(let i =1;i<n;i++){
sum += f/2
f = f/2
}
for(let i =0;i<n;i++){
h = h/2
}
console.log(sum.toFixed(6))
console.log(h.toFixed(6))
}
}) #include <iostream>
using namespace std;
int main(){
int n;
while(cin>>n){
float ans1=100, ans2=0, h=100;
for(int i=1; i<=n; i++){
ans1 = ans1 + ans2*2;
ans2 = h/2;
h /= 2;
}
cout.setf(ios::fixed);
cout.precision(6);
cout.setf(ios::right);
cout << ans1 << " " << ans2;
}
return 0;
} import java.util.Scanner;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
// 注意 hasNext 和 hasNextLine 的区别
int a = in.nextInt();
float ansSum = 100f;
float ansHeight = 50f;
for(int i = 1; i < a; i++){
ansSum += ansHeight * 2f;
ansHeight = ansHeight / 2f;
}
System.out.printf("%.6f %.6f",ansSum,ansHeight);
}
}
)
func main(){
fmt.Println("请输入一个数")
var n int
fmt.Scanf("%v",&n)
Conclute(n)
}
func Conclute(n int ){
var ans1,ans2 float32
ans1,ans2 = 100,50
if n == 1{
fmt.Println(ans1,ans2)
return
}else{
for i := 1;i<n;i++{
ans1 += 2*ans2
ans2 = ans2/2
}
}
fmt.Printf("%v %v",ans1,ans2)
}
// Golang,精度有问题ans2老是多两位不太会调等我研究下
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
int n;
cin >> n;
double sum = 100;
double len = 50;
for(int i = n; i > 1; i--)
{
sum += len*2;
len = len/2;
}
cout << fixed << setprecision(6) << sum << " " << len << endl;
return 0;
} 这个精度emmm我也是醉啦
using System;
class A
{
static void Main()
{
int n = int.Parse(Console.ReadLine());
double height = 100.0;
double ans1 = 0.0;
double ans2 = height;
for(int i = 0;i<n;i++)
{
ans1 += ans2;
ans2 = ans2/2.0;
if(i != n-1)
{
ans1 +=ans2;
}
}
Console.WriteLine($"{ans1} {ans2}");
}
} float精度不够var a=readline();
var val=0.5;
var data=[];
var sum=0;
var count=0;
if(a-1>0 && a!=2){
for(var i=1;i < a-1;i++){
val=val*0.5;
var z=100*val;
data.push(z);
};
for(var j=0;j<data.length;j++){
sum+=data[j];
};
count=sum*2+100+100;
}else if(a==2){
z=100*0.5;
count=z*2+100;
}else{
z=100;
count=100;
};
print(count,z*0.5); import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner s=new Scanner(System.in);
int a = s.nextInt();
float sum=0;
float total=0;
float high=100;
for(int j=1;j<=a;j++) {
if (j == 1) {
total = total + high;
high = high / 2;
} else {
total = total + 2*high;
high = high / 2;
sum = sum + total;
}
}
java.text.DecimalFormat df = new java.text.DecimalFormat(".000000");
System.out.println(df.format(total));
// System.out.println("sum"+sum);
System.out.println(df.format(high));
}
} import java.util.Scanner;
public class Main {
public static void main(String[] args) {
//输入
int n;
for(;;) {
Scanner input = new Scanner(System.in);
n = input.nextInt();
float h =100;
float ans1=100;
float ans2=0;
for(int i=0;i<n;i++){
h =h / 2;
ans1 = ans1+2 * h;
}
ans2 = h;
ans1 = ans1 - 2*h;
System.out.printf("%.6f,%.6f",ans1,ans2);
}
}
}
#include <iostream>
(720)#include <iomanip>
using namespace std;
int main(){
int n=0;
double ans1=0.0,ans2=0.0;
cin>>n;
double height=100.0;
for(int i=0;i<n;i++){
ans1+=height*2;
height/=2;
ans2=height;
}
cout<<setiosflags(ios::fixed)<<setprecision(6)<<ans1-100<<" "<<ans2;
system("pause");
return 0;
}