在C++中使用循环打印序列,1,2,5,6,9,10,13,14,17,18 [已关闭]

fzsnzjdm  于 2022-12-05  发布在  其他
关注(0)|答案(2)|浏览(101)

已关闭。此问题需要更多focused。当前不接受答案。
**想要改进此问题吗?**更新问题,使其仅关注editing this post的一个问题。

昨天关门了。
Improve this question
请帮助编写一个C++程序来打印此序列
1,2,5,6,9,10,13,14,17,18到500。我学生时代的作业需要它。我试过

#include <iostream>
using namespace std;
int main()
{
    for (int i = 1; i < 454; i++) {
        if (i = i + 1) {
            continue;
        }
    }
    return 0;
}
kd3sttzy

kd3sttzy1#

我猜这就是你要找的

#include <iostream>

int main()
{
    for (int i = 1; i <= 500; i++) {
        if (i % 4 == 1 || i % 4 == 2) {
            std::cout << i << ',';
        }
    }
    std::cout << '\n';
}

如果一个数字除以4后的余数是1或2,则打印该数字。

laik7k3q

laik7k3q2#

假设序列被定义为1和3的交替增量,即+1, +3, +1, +3, +1, ...,也许你可以使用while循环:

#include <iostream>

int main()
{
    int i = 0, x = 1;
    while (x <= 500)
    {
        std::cout << x << '\n';    // Print current value of x.
        x += i == 1 ? 3 : 1;       // Increment x based on value of i.
        i ^= 1;                    // Toggle i between 1 and 0.
    }
}

输出:

1
2
5
6
9
10
13
14
17
18
21
22
25
26
29
30
33
34
37
38
41
42
45
46
49
50
53
54
57
58
61
62
65
66
69
70
73
74
77
78
81
82
85
86
89
90
93
94
97
98
101
102
105
106
109
110
113
114
117
118
121
122
125
126
129
130
133
134
137
138
141
142
145
146
149
150
153
154
157
158
161
162
165
166
169
170
173
174
177
178
181
182
185
186
189
190
193
194
197
198
201
202
205
206
209
210
213
214
217
218
221
222
225
226
229
230
233
234
237
238
241
242
245
246
249
250
253
254
257
258
261
262
265
266
269
270
273
274
277
278
281
282
285
286
289
290
293
294
297
298
301
302
305
306
309
310
313
314
317
318
321
322
325
326
329
330
333
334
337
338
341
342
345
346
349
350
353
354
357
358
361
362
365
366
369
370
373
374
377
378
381
382
385
386
389
390
393
394
397
398
401
402
405
406
409
410
413
414
417
418
421
422
425
426
429
430
433
434
437
438
441
442
445
446
449
450
453
454
457
458
461
462
465
466
469
470
473
474
477
478
481
482
485
486
489
490
493
494
497
498

相关问题