当前位置: 代码迷 >> 综合 >> 找规律 while for循环 || P2669 [NOIP2015 普及组] 金币 国王将金币作为工资,发放给忠诚的骑士。第一天,骑士收到一枚金币;之后两天(第二天和第三天),每天收
  详细解决方案

找规律 while for循环 || P2669 [NOIP2015 普及组] 金币 国王将金币作为工资,发放给忠诚的骑士。第一天,骑士收到一枚金币;之后两天(第二天和第三天),每天收

热度:29   发布时间:2023-12-11 21:36:31.0

题目

P2669 [NOIP2015 普及组] 金币

跳转链接
在这里插入图片描述

题解

注评

1 22 333 4444 记录序号 总数 余数 数列求和

Java 代码

package luoguTest;import java.util.Scanner;public class P2669 {
    public static void main(String[] args) {
    Scanner sc = new Scanner(System.in) ;int k = sc.nextInt() ;int sum = 0 ;int sum1 = 0 ;int temp = 0;   //记录 1 22 333 中 6 int i = 1 ;   // 记录 1 22 33 中 3 int y = 0 ;   //记录 多余的余数int z = 0 ;   //记录 前缀总和 1 22 333 444 中 6while(temp <=k ) {
    temp = ((1+i)*i)/2  ;i++ ;		}  // input 8 9
// System.out.println(temp); // 10 10
// System.out.println(k); //8 9
// System.out.println(i); // 5 5
// System.out.println(i-2); //3 3z = ((1+(i-2))*(i-2))/2  ;// System.out.println(z); // NAN 6if(temp  > k) {
    y = k - z ; sum1 = y * (i-1) ;}//System.out.println(y); //5 6for(int j = 0 ; j <= i-2 ;j++ ) {
    sum += j * j ;}System.out.println(sum+sum1);}
}