`
xuluan
  • 浏览: 11232 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

3n+1猜想补充

阅读更多

 

鉴于n<=10^9,即int行将会超过界限,如果是使用http://xuluan.iteye.com/admin/blogs/2029208

页面的代码,运行结果将会出错。当n=999999999时,第一次3n+1就会越界;

 

因而本次n使用了_int64(long long)型定义,这就很好地解决了越界问题

 

 

#include<stdio.h>
int main(){
	__int64 n;
	int count = 0;
	
	scanf("%I64d",&n);
	while(n > 1){ 
		if(n % 2 == 1){			
			n = 3 * n + 1; 
		}else{	
			n /= 2;
		}
		count += 1;
	}
	printf("%d\n",count);
	return 0;
} 

 

 

附加说明:

long long型只能在支持c99标准的编译器上使用,如果需要使用long long型那就_int64代替即可;

long long            输入,lld%;      输出,lld%;

_int64                 输入,%I64d    输出,%I64d;

usigned _int64   输入,%I64u    输出,%I64u;

个人测试:_int64 和 unsigned _int64的输入、输出可以互用;(代码就不贴了,有兴趣的可以试下)

 

32位机器:

int                        4字节         [-2^31,2^31)       -2147483648~2147483647                                  10^9

long                     4字节         [-2^31,2^31)       -2147483648~2147483647                                  10^9

long long              8字节         [-2^63, 2^63)      -9223372036854775808~9223372036854775807  10^19

 

 

分享到:
评论

相关推荐

    3N+1猜想与3N+3k猜想的等价性及相关性质 (2006年)

    将数论中3N+1猜想推广为3N+3k猜想。得到了3N+1猜想与3N+3k猜想的等价性。得到有关3N+3猜想的一些性质,3N+1猜想的推广、3N+3猜想的一些性质的建立对于研究4K+3型奇数在3N+3猜想压缩迭代中起到简化作用,同时也为3N+1...

    1001. 害死人不偿命的(3n+1)猜想

    PAT 1001. 害死人不偿命的(3n+1)猜想 C实现

    3n+1问题 C语言实现

    3N+1问题,也称为Collatz猜想或Syracuse问题,是一个经典的数学问题,至今未被完全解决。该问题的核心思想是:对任意一个正整数n进行以下操作: 1. 如果n为偶数,则将n除以2。 2. 如果n为奇数,则计算3n + 1。 重复...

    POJ1207-The 3n + 1 problem

    本题目的核心是解决著名的“Collatz Conjecture”问题,也被称为“3n+1猜想”。 3n+1猜想是由Lothar Collatz于1937年提出的,至今未被证明或否定。该猜想的基本规则是:对于任意正整数n,如果n为偶数,则将其除以2...

    Uva 100(The 3n+1 problem) c 代码

    Uva 100 ,问题是The 3n+1 probelm ,可以ac的代码

    继续(3n+1)猜想.sln

    继续(3n+1)猜想.sln

    C语言填数程序~~将1至3n+2的自然数填入指定圆中方法2

    从键盘输入一个自然数n,将1至3n+2的自然数填入图2-1的圆框中,使得所有用线段相连的两个数之差的绝对值能产生数列1,2,…,3n+1。

    3n+1问题java源码

    这个猜想对于至少 1 000 000内的整数都是正确的。 对于给定的 n,该序列的元素(包括 1)个数被称为 n 的循环节长度。在上述例子中,22 的循环节长度为 16。 输入两个数 i 和 j,你的任务是计算 i 到 j(包含 i 和 j...

    100 - The 3n + 1 problem.c

    UVA 100题答案

    100 3N+1 以空間換時間

    叭啦 叭啦 巴拉 就是ACM100 3N+1 巴拉巴拉巴拉 叭啦 叭啦 巴拉 就是ACM100 3N+1 巴拉巴拉巴拉

    C 代码 通过考虑 简单的 Collatz 3n+1 问题.rar

    Collatz 3n+1问题,又称Collatz序列或哈塞程序,是一个简单的数学猜想,它涉及到整数序列的操作。这个猜想由Lothar Collatz于1937年提出,至今未被证明或否定。它的规则非常直观:对于任意正整数n,如果n是偶数,则...

    C语言填数程序~~将1至3n+2的自然数填入指定圆中1

    从键盘输入一个自然数n,将1至3n+2的自然数填入图2-1的圆框中,使得所有用线段相连的两个数之差的绝对值能产生数列1,2,…,3n+1。

    3nplus1_3n+1_

    C program that accepts the input of a positive integer m from the console and displays all all starting values n from 1 to m in tabular form

    Collat​​z:Collat​​z序列或3n + 1问题的蛮力检查

    蛮力检查Collat​​z序列或3n + 1问题。 程序将查找具有最长Collat​​z序列的起始编号,直到指定的上限。 该代码有两种实现。 两者都是多线程的。 collat​​z.cpp使用共享内存库OpenMP,而mpi_collat​​z.cpp使用...

    Collatz-Conjecture:无人能解的最简单数学问题的直观表示。 (3N+1 问题)

    (3N+1 问题) 又名3N+1问题。 臭名昭著的 Collat​​z 猜想说,如果您从任何正整数开始,您将始终以这个循环结束。 结果,在某些时候,最终会出现在4,2,1的循环中。 这是如何运作的? 我建议您观看 Veritasium ...

    C# winform随机生成曲线(免积分下载,文章有演示gif图片),曲线生成算法

    3n+1个控制点 每四个点生成一条曲线 每条曲线分成200小段画出红色曲线 第二种随机曲线生成:随机三次Bezier曲线 3n+1个控制点 每四个点生成一条曲线 第三种随机曲线生成:随机三次B样条曲线 3n+1个控制点 每四个点...

    PAT计算机能力考试乙级1-10题答案.doc

    本文将对PAT计算机能力考试乙级1-10题答案进行详细的解读,包括(3n+1)猜想、数字之和、字符串处理等。 (1)(3n+1)猜想 (3n+1)猜想是卡拉兹在1950年世界数学家大会上公布的猜想,内容是对任何一个正整数n,...

    acm竞赛第100题答案

    【ACM竞赛第100题】,也称为"3n+1问题"或"Collatz猜想",是一道在算法竞赛中常见的题目。这个问题由Lothar Collatz于1937年提出,尽管简单易懂,但至今未得到完全解决。本题目的代码是用C++编写的一个解决方案,用于...

Global site tag (gtag.js) - Google Analytics