易码技术论坛

 找回密码
 加入易码
搜索
查看: 80158|回复: 2

各位大虾们,帮帮我,如何用C编3X+1的问题,详细请看贴内

[复制链接]
发表于 2005-10-20 21:19:00 | 显示全部楼层
不太明白什么意思,提供一种我的理解:

  1. #include<stdio.h>

  2. int main(){
  3.     int num=1;
  4.     printf("Please input a number: ");
  5.     scanf("%d",&num);
  6.     while(num!=1){
  7.         printf("%d ",num);
  8.         if ( num & 1 ){//奇数
  9.             num = 3 * num + 1;
  10.         }else{//偶数
  11.             num = num / 2;
  12.         }
  13.     }
  14.     printf("%d ",num);
  15. }
  16. 试运行结果:
  17.     Please input a number: 100
  18.     100 50 25 76 38 19 58 29 88 44 22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1
复制代码

感觉原理就是不停的除以2,加1是为了保证是偶数不出现小数情况,乘以3完全是为了迷惑-_-bb
 楼主| 发表于 2005-10-21 22:52:00 | 显示全部楼层
谢谢


 楼主| 发表于 2005-10-20 18:27:05 | 显示全部楼层 |阅读模式
3X+1的详细内容见http://www.oursci.org/magazine/200107/010714.htm

如何用C编

在线等ing
您需要登录后才可以回帖 登录 | 加入易码

本版积分规则

Archiver|手机版|小黑屋|EMAX Studio

GMT+8, 2024-5-17 01:39 , Processed in 0.010336 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表