鉴于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
相关推荐
PAT 1001. 害死人不偿命的(3n+1)猜想 C实现
将数论中3N+1猜想推广为3N+3k猜想。得到了3N+1猜想与3N+3k猜想的等价性。得到有关3N+3猜想的一些性质,3N+1猜想的推广、3N+3猜想的一些性质的建立对于研究4K+3型奇数在3N+3猜想压缩迭代中起到简化作用,同时也为3N+1...
3N+1问题,也称为Collatz猜想或Syracuse问题,是一个经典的数学问题,至今未被完全解决。该问题的核心思想是:对任意一个正整数n进行以下操作: 1. 如果n为偶数,则将n除以2。 2. 如果n为奇数,则计算3n + 1。 重复...
本题目的核心是解决著名的“Collatz Conjecture”问题,也被称为“3n+1猜想”。 3n+1猜想是由Lothar Collatz于1937年提出的,至今未被证明或否定。该猜想的基本规则是:对于任意正整数n,如果n为偶数,则将其除以2...
Uva 100 ,问题是The 3n+1 probelm ,可以ac的代码
继续(3n+1)猜想.sln
从键盘输入一个自然数n,将1至3n+2的自然数填入图2-1的圆框中,使得所有用线段相连的两个数之差的绝对值能产生数列1,2,…,3n+1。
这个猜想对于至少 1 000 000内的整数都是正确的。 对于给定的 n,该序列的元素(包括 1)个数被称为 n 的循环节长度。在上述例子中,22 的循环节长度为 16。 输入两个数 i 和 j,你的任务是计算 i 到 j(包含 i 和 j...
UVA 100题答案
叭啦 叭啦 巴拉 就是ACM100 3N+1 巴拉巴拉巴拉 叭啦 叭啦 巴拉 就是ACM100 3N+1 巴拉巴拉巴拉
Collatz 3n+1问题,又称Collatz序列或哈塞程序,是一个简单的数学猜想,它涉及到整数序列的操作。这个猜想由Lothar Collatz于1937年提出,至今未被证明或否定。它的规则非常直观:对于任意正整数n,如果n是偶数,则...
从键盘输入一个自然数n,将1至3n+2的自然数填入图2-1的圆框中,使得所有用线段相连的两个数之差的绝对值能产生数列1,2,…,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
蛮力检查Collatz序列或3n + 1问题。 程序将查找具有最长Collatz序列的起始编号,直到指定的上限。 该代码有两种实现。 两者都是多线程的。 collatz.cpp使用共享内存库OpenMP,而mpi_collatz.cpp使用...
(3N+1 问题) 又名3N+1问题。 臭名昭著的 Collatz 猜想说,如果您从任何正整数开始,您将始终以这个循环结束。 结果,在某些时候,最终会出现在4,2,1的循环中。 这是如何运作的? 我建议您观看 Veritasium ...
3n+1个控制点 每四个点生成一条曲线 每条曲线分成200小段画出红色曲线 第二种随机曲线生成:随机三次Bezier曲线 3n+1个控制点 每四个点生成一条曲线 第三种随机曲线生成:随机三次B样条曲线 3n+1个控制点 每四个点...
本文将对PAT计算机能力考试乙级1-10题答案进行详细的解读,包括(3n+1)猜想、数字之和、字符串处理等。 (1)(3n+1)猜想 (3n+1)猜想是卡拉兹在1950年世界数学家大会上公布的猜想,内容是对任何一个正整数n,...
【ACM竞赛第100题】,也称为"3n+1问题"或"Collatz猜想",是一道在算法竞赛中常见的题目。这个问题由Lothar Collatz于1937年提出,尽管简单易懂,但至今未得到完全解决。本题目的代码是用C++编写的一个解决方案,用于...