easy problem

The problem:

输入:
有多个测试,每个测试一行,每行只有1个数字n(8<=n<=1000)
最后当N为0的时候结束程序

输出:
输出N个数,这n个数不能重复,取值范围在1--n,并且相邻两个数的差值要大于等于3,输入的数据保证这样的
序列存在,你主要输出符合田间的其中一个序列就可以了,一个序列一行。

样例输入:
9
0

样例输出:
1 4 7 2 5 8 3 6 9

The answer:

1.

 

  1. #include <iostream>
  2. using namespace std;
  3. int main()
  4. {
  5.           int n;
  6.           while (cin>>n)
  7.           {
  8.                   int i, j;
  9.                   for ( j = 1; j <= 3; ++j )
  10.                   {
  11.                       for ( i = j; i <= n; i += 3 )
  12.                               cout<<i;
  13.                   }
  14.                   cout<<endl;
  15.           }
  16.           return 0;
  17. }

2.

  1. #include <iostream>
  2. using namespace std;
  3. int main()
  4. {
  5.            int n;
  6.            while (cin>>n)
  7.            {
  8.                   int a[1001] = {0}, i, j, k = 1;
  9.                    for ( j = 1; !a[j]; ++j )
  10.                   {
  11.                           for ( i = j; i <= n; i += 3 )
  12.                                 a[i] = k++;
  13.                   }
  14.                   for ( i = 1; i <= n; ++i )
  15.                           cout<<a[i];
  16.                   cout<<endl;
  17.              }
  18.              return 0;
  19. }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值