A.から始まる4つの連続した数字を取って、任意の正整数A 6を超えません それらからなる繰り返しなしすべての3桁の数字の出力してください。
入力フォーマット:
行Aに与えられた入力
出力フォーマット:
小から大までに必要な条件を満たしている3桁の出力、6つの整数の各行。整数の間のスペースで区切られますが、行の最後には、余分なスペースを持つことができません。
サンプル入力:
2
出力サンプル:
234 235,243,245,253,254
324 325,342,345,352,354
423 425,432,435,452,453
523 524,532,534,542,543
暴力ソリューション:
#include <stdio.h>
int main()
{
int A;
scanf("%d", &A);
int a=A;
int b=A+1;
int c=A+2;
int d=A+3;
printf("%d%d%d %d%d%d %d%d%d %d%d%d %d%d%d %d%d%d\n",a,b,c,a,b,d,a,c,b,a,c,d,a,d,b,a,d,c);
printf("%d%d%d %d%d%d %d%d%d %d%d%d %d%d%d %d%d%d\n",b,a,c,b,a,d,b,c,a,b,c,d,b,d,a,b,d,c);
printf("%d%d%d %d%d%d %d%d%d %d%d%d %d%d%d %d%d%d\n",c,a,b,c,a,d,c,b,a,c,b,d,c,d,a,c,d,b);
printf("%d%d%d %d%d%d %d%d%d %d%d%d %d%d%d %d%d%d\n",d,a,b,d,a,c,d,b,a,d,b,c,d,c,a,d,c,b);
return 0;
}
別の解決策:
#include <stdio.h>
int main()
{
int a,i,j,k;
scanf("%d", &a);
int cnt = 0;
for (i=a;i<=a+3;i++)
{
for (j=a;j<=a+3;j++)
{
for (k=a;k<=a+3;k++)
{
if (i!=j && i!=k && j!=k)
{
printf("%d", 100*i+10*j+k);
//由于这里不涉及0,因此也可以printf("%d%d%d", i, j, k);
cnt++;
if (cnt%6 == 0)
{
printf("\n");
}
else
{
printf(" ");
}
}
}
}
}
return 0;
}