约瑟夫环

已知n个人(以编号1,2,3…n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。

运行效果

请输入总人数:
666
从第几个人开始:
66
从1数到几:
6
71 77 83 89 95 101 107 113 119 125 131 137 143 149 155 161 167 173 179 185 191 197 203 209 215 221 227 233 239 245 251 257 263 269 275 281 287 293 299 305 311 317 323 329 335 341 347 353 359 365 371 377 383 389 395 401 407 413 419 425 431 437 443 449 455 461 467 473 479 485 491 497 503 509 515 521 527 533 539 545 551 557 563 569 575 581 587 593 599 605 611 617 623 629 635 641 647 653 659 665 5 11 17 23 29 35 41 47 53 59 65 72 79 86 93 100 108 115 122 129 136 144 151 158 165 172 180 187 194 201 208 216 223 230 237 244 252 259 266 273 280 288 295 302 309 316 324 331 338 345 352 360 367 374 381 388 396 403 410 417 424 432 439 446 453 460 468 475 482 489 496 504 511 518 525 532 540 547 554 561 568 576 583 590 597 604 612 619 626 633 640 648 655 662 3 10 18 25 32 39 46 54 61 68 76 85 94 103 111 120 128 138 146 154 163 171 181 189 198 206 214 224 232 241 249 258 267 276 284 292 301 310 319 327 336 344 354 362 370 379 387 397 405 414 422 430 440 448 457 465 474 483 492 500 508 517 526 535 543 552 560 570 578 586 595 603 613 621 630 638 646 656 664 7 15 24 33 42 50 58 67 78 88 98 109 118 130 140 150 160 170 182 192 202 212 222 234 243 254 264 274 285 296 306 315 326 337 348 357 368 378 390 399 409 420 429 441 451 462 471 481 493 502 513 523 534 544 555 565 574 585 596 607 616 627 637 649 658 2 13 22 34 44 55 64 75 90 102 114 126 139 152 164 176 188 200 213 226 238 250 262 277 289 300 313 325 339 350 363 375 386 400 412 426 436 450 463 476 487 499 512 524 537 549 562 573 588 600 610 624 636 650 661 8 20 31 45 57 70 84 99 116 132 145 159 175 190 205 219 235 248 265 279 294 308 322 340 355 369 384 398 415 428 444 458 472 488 505 519 531 548 564 579 592 608 622 639 652 1 16 30 48 62 80 96 112 133 148 168 184 204 220 240 256 272 291 312 330 346 364 382 402 418 435 454 470 490 507 528 542 559 580 598 615 632 651 4 21 38 56 74 97 121 141 162 183 207 228 247 270 290 314 333 356 376 394 421 442 464 484 506 529 550 571 591 614 634 657 12 36 52 81 105 127 156 178 210 231 260 283 307 334 361 391 411 438 466 494 516 541 567 594 620 644 6 28 60 87 117 147 177 211 242 271 303 332 366 393 427 456 486 520 553 582 609 643 9 40 69 106 142 186 218 255 297 328 372 406 445 478 514 556 589 628 663 37 73 123 166 199 253 298 343 385 433 477 522 566 606 654 27 82 134 193 236 286 349 404 452 501 558 618 666 51 110 174 246 318 373 434 498 572 631 26 92 169 261 321 408 480 546 642 49 135 225 320 416 510 601 19 124 229 351 459 577 14 153 278 392 536 660 157 304 469 625 104 342 530 63 268 495 66 358 602 217 584 282 43 447 380 196 423 645 538 195 剩下的人是:91
请按任意键继续. . .

代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace _6_10同学报数
{class Program{static void Main(string[] args){//输入总数int total;Console.WriteLine("请输入总人数:");total = int.Parse(Console.ReadLine());bool[] a = new bool[total];//输入从第几个开始数int begin;Console.WriteLine("从第几个人开始:");begin = int.Parse(Console.ReadLine());//数到几int count;Console.WriteLine("从1数到几:");count = int.Parse(Console.ReadLine());//全部为truefor (int i = 0; i < total; i++){a[i] = true;}//开始删除int iter = begin - 1;int countnum = 1;int left = total;while (left != 1)               //如果剩一个人,停止{if (a[iter] == false)      //如果这个人已经被删除,跳过{iter++;iter %= total;continue;}if (countnum == 0)          //如果当前人报3(即余3得0),删除这个人{a[iter] = false;left--;Console.Write(iter + 1 + " ");}iter++;                     //下一个人iter %= total;countnum++;                 //下一个人报的数countnum %= count;}//剩下的数字for (int i = 0; i < total; i++){if (a[i] == true){Console.Write("剩下的人是:" + (i + 1) + "\n");break;}}}}
}

C# 约瑟夫环 用数组实现相关推荐

  1. 映射递归循环-约瑟夫环问题递归解法的一点理解

    先说明一点,如果有什么不对的地方,欢迎大家批评指正. 先来看这个类型的某个题目描述: 约瑟夫生者死者游戏 约瑟夫游戏的大意:30个游客同乘一条船,因为严重超载, 加上风浪大作,危险万分.因此船长告诉乘 ...

  2. 约瑟夫环-(数组、循环链表、数学)

    约瑟夫环(约瑟夫问题)是一个数学的应用问题:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围.从编号为k的人开始报数,数到m的那个人出列:他的下一个人又从1开始报数,数到m的那个人又出 ...

  3. 无聊闲做,从使用PHP数组实现约瑟夫环问题谈性能

    闲来无事,看到园子里的一篇文章约瑟夫环问题的 PHP 实现--使用 PHP 数组内部指针操作函数,以前没有搞过,也没有听说什么什么环的,所以突然也想搞一下试试 问题大概这样子:一群猴子排成一圈,按 1 ...

  4. C语言解决经典问题约瑟夫环--数组

    什么时约瑟夫环问题? 约瑟夫问题,是一个计算机科学和数学中的问题,在计算机编程的算法中,类似问题又称为约瑟夫环,又称"丢手绢问题". 问题的大致内容就是:一共有N个人,从1开始报数 ...

  5. C语言用数组1. 简单约瑟夫环问题: N个人,编号从1~N围成一圈,输入一个数T,从1号开始报数,报到T的人出圈;下一人又从1开始报数,下一个报到T的人出圈,输出出圈顺序。 考虑问实现约瑟夫环问题

    1. 简单约瑟夫环问题: N个人,编号从1~N围成一圈,输入一个数T,从1号开始报数,报到T的人出圈:下一人又从1开始报数,下一个报到T的人出圈,输出出圈顺序. 考虑问题: 报到T的人出圈,怎么表示出 ...

  6. LeetCode 937. 重新排列日志文件 / 1823. 找出游戏的获胜者(约瑟夫环问题) / 713. 乘积小于 K 的子数组

    937. 重新排列日志文件 2022.5.3 每日一题 题目描述 给你一个日志数组 logs.每条日志都是以空格分隔的字串,其第一个字为字母与数字混合的 标识符 . 有两种不同类型的日志: 字母日志: ...

  7. 约瑟夫环问题(C语言数组和循环链表)

    本文将用两种方式(数组和循环链表)求解约瑟夫环问题,为了更好理解,本文将从洛谷的P1996 约瑟夫问题出发. 题目描述 n个人围成一圈,从第一个人开始报数,数到 m的人出列,再由下一个人重新从1开始报 ...

  8. 约瑟夫环(循环数组循环链表)

    目录 1.循环数组 2.循环链表 题目 1 .一群猴子要选新猴王.新猴王的选择方法是:让N只候选猴子围成一圈,从某位置起顺序编号为1~N号.从第1号开始报数,每轮从1报到3,凡报到3的猴子即退出圈子, ...

  9. 约瑟夫环---自杀环问题 C++数组实现 数学推理

    约瑟夫环–自杀环问题 约瑟夫环问题有着这样的历史: Josephus有过的故事:39 个犹太人与Josephus及他的朋友躲到一个洞中,39个犹太人决定宁愿死也不要被敌人抓.于是决定了自杀方式,41个 ...

最新文章

  1. 用java程序操作hadoop,intellij IDEA和maven的使用
  2. 单词计数WordCountApp.class
  3. Java I/O体系详细讲解
  4. Oracle EBS:追踪PO全过程
  5. PyQt5环境搭建及cx_freeze打包exe
  6. php text换行_php实现文字换行
  7. 9008刷机模式写入超时刷机帮_【转】高通9008模式刷机,让小米刷机不再畏惧
  8. 思科交换机配置试题_思科交换机配置命令
  9. 浩辰ICAD电气软件IDq2003i.rar
  10. 自动批量删除微博取消关注删除私信脚本
  11. winpe加载raid_为WinPE添加RAID卡驱动的几种步骤
  12. 微信蓝牙设备服务器,微信又更新了 支持连接蓝牙设备
  13. 依靠闲鱼赚钱,互联网副业单天500+
  14. ResNet论文翻译及解读
  15. OLED 驱动模块程序代码
  16. 直播“CoSoLoMo”战略是地方电视台重大历史机遇
  17. JAVA中的GUI设计
  18. 瞬间击退眼睛疲劳的五大运动
  19. android.view.WindowLeaked: Activity XXX has leaked window DecorView@9801a78[XXX] that was originall
  20. or: union member ‘RTMP::RtmpStream::NalData::nal_data::StapA’ with non-trivial ‘RTMP::RtmpS

热门文章

  1. vsftp匿名访问目录_VSFTP本地用户目录跟匿名用户目录肿么修改?
  2. 数据模型与决策_数据模型与决策复习资料拿走不用客气
  3. 表达式ya是不合法的c语言标识符,《C语言程序设计》试题3及答案
  4. 关闭 进程_关闭一个进程 锐龙CPU骤然降温22.5!
  5. SkinSharp For Visual C++
  6. GitLab 自动触发 Jenkins 构建
  7. Windows下查看端口被占用问题和解决办法
  8. 回腾讯了......
  9. Leetcode-Merge k Sorted Lists
  10. 音视频领域或将开启”外卷“之路