给出数字i
和j
。
打印长度为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--;
}
答案 0 :(得分:1)
您可以将j
除以i
。您可以打印i
次j / i
,但是总和太小。 j
和i * (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;
}