1

好的,所以我需要用天数制作一个数字模式,例如:1 - 星期一,2 - 星期二,3 - 星期三直到 7 - 星期日。如果我输入“n”,我会得到以下信息:

n=4
1 2 3 4

n=7
1 2 3 4 5 6 7

n=12
1 2 3 4 5 6 7 1 2 3 4 5

如果 n<=14 我已经成功地制作了这个程序,但是如果 n>14 我得到:
n=17
1 2 3 4 5 6 7 1 2 3 4 5 6 7 8 9 10
当它应该是:
n=17
1 2 3 4 5 6 7 1 2 3 4 5 6 7 1 2 3

这是我的代码

for (x=1;x<=n;x++){
    System.out.print(x+" ");
    if (x==7){
        for (x=1;x<=(n-7);x++)
        System.out.print(x+" ");
        break;
    }
}

提前致谢

4

1 回答 1

2

试试这个:

for (int i = 0; i < n; i++)
    System.out.print(i % 7 + 1 + " ");

每当您想要具有“重复”行为时,即一系列数字上升到某个值然后重新启动,请使用%运算符和一些模运算来实现所需的效果。对于n = 17上面将打印:

1 2 3 4 5 6 7 1 2 3 4 5 6 7 1 2 3
于 2013-10-10T22:40:46.877 回答