首页 > 试题广场 >

金币

[编程题]金币
  • 热度指数:18166 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
国王将金币作为工资,发放给忠诚的骑士。第一天,骑士收到一枚金币;之后两天(第二天和第三天),每天收到两枚金币;之后三天(第四、五、六天),每天收到三枚金币;之后四天(第七、八、九、十天),每天收到四枚金币……;这种工资发放模式会一直这样延续下去:当连续N天每天收到N枚金币后,骑士会在之后的连续N+1天里,每天收到N+1枚金币。
请计算在前K天里,骑士一共获得了多少金币。

输入描述:
输入只有1行,包含一个正整数K,表示发放金币的天数。


输出描述:
输出只有1行,包含一个正整数,即骑士收到的金币数。
示例1

输入

6

输出

14

说明

骑士第一天收到一枚金币;第二天和第三天,每天收到两枚金币;第四、五、六天,每天收到三枚金币。因此一共收到1+2+2+3+3+3=14枚金币。
示例2

输入

1000

输出

29820

备注:
对于100%的数据,1 ≤ K ≤ 10,000。
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int k = in.nextInt();
        int ret = gold(k);
        System.out.println(ret);
    }
    public static int gold(int k){
        int sum = 0; //金币总数
        int num = 1; //金币增加后的数量
        int count = 0; //计数器
        for (int i = 1; i <= k; i++) {
            for (int j = 1; j <= i; j++) {
                sum += num;
                count++; //计算天数
                if (count == k){ //如果天数达到目标,跳出
                    break;
                }
            }
            num++;
            if (count == k){ //同上,上面的是防止循环内继续进行
                break;
            }
        }
        return sum;
    }
}

发表于 2024-08-10 22:23:43 回复(0)
import java.util.Scanner;
import java.util.ArrayList;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int k=in.nextInt();
        int a=(int)Math.ceil(Double.valueOf(k)/2.0);
        ArrayList<Integer> array=new ArrayList<Integer>();
        for(int i=1;i<=a;i++){
            for(int j=1;j<=i;j++){
                array.add(i);
            }
        }
        int count=0;
        for(int i=0;i<k;i++){
            count=count+array.get(i);
        }
        System.out.println(count);

    }
}

发表于 2022-10-31 19:24:41 回复(0)
import java.util.Scanner;

public class Main{
    public static void main(String[] args){
        Scanner sc=new Scanner(System.in);
        int k=sc.nextInt();
        int count=0,total=0;
        for(int i=1;i<=k;i++){
            for(int j=1;j<=i;j++){
                total+=i;
                count++;
                if(count==k) break;
            }
            if(count==k) break;
        }
        System.out.print(total);
    }
}

发表于 2022-07-26 22:56:48 回复(0)
import java.util.*;
public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        while(scanner.hasNext()){
            int coinNum = scanner.nextInt();
            int sum = 0;
            int days = 0;
            for(int i = 1;days < coinNum;i++){
                for(int j = 1;j <= i && days< coinNum;j++){
                    sum = sum + i;
                    days++;
                }
            }
            System.out.println(sum);
        }
    }
}

发表于 2022-06-28 14:30:23 回复(0)
import java.util.*;
public class Main{
  public static int getcoin(int n) {
      int cion=0,num=0;
      for(int i=1;num<n;i++){
           for(int j=1;j<=i&&num<n;j++){
               cion+=i;
               num++;
            }
         }
    return cion;
  }
public static void main(String love[]){
   Scanner input=new Scanner(System.in);
   int n=input.nextInt();
    System.out.print(getcoin(n));
     input.close();
} 
}

发表于 2022-05-12 11:22:09 回复(0)
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int sum = 0;
        int t = 0;
        for(int i=1;t<n;i++){
           for(int j=1;j<=i&&t<n;j++){
               sum+=i;
               t++;
            }
         }
        System.out.print(sum);
    }
}

发表于 2022-03-05 14:44:52 回复(0)