概述
【题目描述】
求解连续数列:已知连续正整数数列{K}=K1,K2,K3…Ki的各个数相加之和为S,i=N(0<S<100000,0<N<100000),求此数列K。
输入描述:
输入包含两个参数,1)连续正整数数列和S,2)数列里数的个数N。
输出描述:
如果有解输出数列K,如果无解输出-1。
【示例】
示例1:
输入
525
6
输出
85 86 87 88 89 90
【解题思路】
递归,循环
【代码】
package Huawei;
import java.util.Scanner;
/**
* @description:
* @author: Polaris
* @date: 2022/3/31 22:26
*/
public class no19 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (sc.hasNext()) {
int tar = sc.nextInt();
int len = sc.nextInt();
int[] arr = new int[len];
arr[len - 1] = tar / len;
for (int i = len - 2; i >= 0; i--) {
arr[i] = arr[i + 1] - 1;
}
int[] ans = fun(arr, tar);
if (ans != null) {
for (int i : ans) {
System.out.print(i+" ");
}
} else {
System.out.println(-1);
}
}
}
static int[] fun(int[] arr, int tar) {
int sum = 0;
while(sum < tar) {
for (int i = 0; i < arr.length; i++) {
arr[i]++;
}
sum=0;
for (int i : arr) {
sum += i;
}
if (sum == tar) {
return arr;
}
}
return null;
}
}
最后
以上就是拼搏纸飞机为你收集整理的求解连续数列 华为机试的全部内容,希望文章能够帮你解决求解连续数列 华为机试所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复