如何打印给定i和j的数字数组,使得i的所有元素的总和等于j

How to print array of numbers given i and j, such that sum of all elements of i is equal to j?

本文关键字:使得 元素 数组 数字 何打印 打印      更新时间:2023-10-16

给定数字ij。打印一个长度为 i的数组,以使数组中所有元素的总和相等 j

输入:

  i = 5 ;
  j = 27;

输出:

  6
  6
  5
  5
  5

喜欢:

a[0] = 1 + 1 + 1 + 1 + 1 + 1
a[1] = 1 + 1 + 1 + 1 + 1 + 1
a[2] = 1 + 1 + 1 + 1 + 1
a[3] = 1 + 1 + 1 + 1 + 1
a[4] = 1 + 1 + 1 + 1 + 1

我的代码: -

int N, K;
cin >> N >> K;
int arr[N]{ 0 };
while (K > 0)
{
    for (int i{ 0 }; i < N; i++)
    {
        int k = 0;
        k++;
        arr[i] = k;
    }
    K--;
}

您可以将j除以i。您可以打印ij / i,但总和太小。ji * (j / i)之间的区别是您必须打印(j / i) + 1的时间。

#include <iostream>
int main() {
    int i = 5, j = 27;
    int s = j / i;
    int k = j - s * i;
    bool first = true;
    for (int z = 0; z < k; ++z) {
        if (!first) std::cout << ' ';
        else first = false;
        std::cout << s + 1;
    }
    for (int z = k; z < i; ++z) {
        if (!first) std::cout << ' ';
        else first = false;
        std::cout << s;
    }
    return 0;
}