为陈述问题,我附了两张照片。
https://i.stack.imgur.com/22zyM.png
https://i.stack.imgur.com/5c8e6.png
我的代码:
for(i=0;i<300;i++)
{
x[i]=i;y[i]=i;z[i]=i;
}
//printf("Enter number : ");
scanf("%d",&n);
printf("%d\n",n);
//for(i=0;i<n;i++)
i=0;
do
{
for(int j=0;j<n;j++)
{
for(int k=0;k<n;k++)
{
if(x[i]+y[j]+z[k]==n)
{
printf("%d %d %d \n",x[i],y[j],z[k]);
i++;
}
}
}
}while(i<n);
现在,我为自定义输入值获取的输出对于所有值都是正确的。但是,当我尝试在网站上检查它的测试用例时,它仅能正确显示两种情况。
请帮助我解决此问题。谢谢。
答案 0 :(得分:1)
#include <stdio.h>
#include <string.h>
#include <math.h>
#include <stdlib.h>
int n, k;
int main() {
scanf("%d", &n);
k = (2 * n) / 3;
printf("%d", k + 1);
printf("\n");
int y = 2 * k - n;
int x = n - 2 * y;
for (int i = 0; i <= y; i++) {
printf("%d %d %d", i, x + i, n - x - 2 * i);
printf("\n");
}
for (int i = 0; i < k - y; i++) {
printf("%d %d %d", y + i + 1, i, n - y - 1 - 2 * i);
printf("\n");
}
return 0;
}