用java,c#,c++,golong最少的代码,求出结果 5C

请问小明要去上海,第一天步行了10000米,从第二天开始小明换了交通工具,以后的行程每天都是前一天的2倍加1000米,请各位大捞们用最简单的代码方式实现小明n天的行程(也就是n天走了多少米),提示到此,伙伴们发挥你们的想象吧,加油,面包会有的,java,c#,c++,golong各种语言都行

5个回答

代码最简单,而且速度最快就是套公式

result = 10000*(2^(n-1))+1000*(2^(n-1)-1)
化简
result = 11000*(2^(n-1))-1000

又因为2的n次方在一些语言中可以用向左移位表示。所以给一个C/C++语言最简单的(不考虑溢出问题,n超过30就要用大数计算了)

#include <stdio.h>
int main()
{
int n;
scanf("%d", &n);
printf("%d", 11000*(1 << (n - 1))-1000);
}
public int Travel(int num){
    int Alllength=10000;
    for(int i=1;i<num;i++){
        Alllength+=Alllength*2+1000
    }
    return Alllength;
}
public int Num(int N){
    int DayNum=10000; //第一天走了多少米
    int Num=DayNum;//N天走了多少米                
    for(int i=1;i<N;i++){
        DayNum=DayNum*2+1000;// 第N天走了多少米
        Num+=DayNum;//N天走了多少米
    }
    return Num;
}

import java.util.Scanner;
public class Hello {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.print("请输入行走天数:");
int countday=sc.nextInt();//行走天数
int i;//循环变量
long alllength=10000;//总的行走距离
long todaylength=alllength;//第几天走的距离,第1天走了10000米

    System.out.println(countday);
    for (i=2;i<=countday;i++) {
        todaylength=2*todaylength+1000;
        alllength+=todaylength;
        System.out.println(i+";"+todaylength+";"+alllength);
    }
    System.out.println("第"+countday+"天行走了"+todaylength+"米;一共走了"+alllength+"米");
}

}

public static void main(String[] args) {
int x = 10000;
int t = 3;//设置天数
for(int i=1;i<t;i++)
{x=x*2+1000;}
System.out.println(t+"天走了"+x+"米");
}

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问