吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 3004|回复: 1
收起左侧

[其他原创] [汇编][算法实战004]3n+1猜想

[复制链接]
老刘 发表于 2019-4-22 16:45
捕获.JPG
[Asm] 纯文本查看 复制代码
;Collatz猜想
;Code By 老刘
;环境:MASM32 SDK
;编译指令:ml /coff Collatz猜想.asm /link /subsystem:console
;参数:需要验证猜想的数。
;没写高精度,所以输入或计算中途的超过2^32 - 1的数会有溢出。
;参考:MHL批处理标准教程之3n+1猜想。


Include masm32rt.inc
Main Proto

.Data?
	bBuffer DB 11 Dup (?)
	dwInput DD ?
	dwCrLfZero DD ?
	dwJumpPlusOne DD ?
;End Data?

.Code
	Main Proc
		;获得参数
		Invoke ArgClC,1,Offset bBuffer
		Sub Esp,4
		Invoke atodw_ex,Offset bBuffer
		Add Esp,4
		Mov dwInput,Eax
		
		Push Eax
		Invoke StdOut,cfm$("{")
		Pop Eax
		;开始标记
		Xor Ecx,Ecx	;计数器
		.While Eax > 1
			PushAD
			Invoke dw2a,Eax,Offset bBuffer
			Invoke StdOut,Offset bBuffer
			Invoke StdOut,cfm$(",")
			PopAD
			Inc Ecx
			Mov Ebx,Eax
			Shr Eax,1
			Mov Edx,Eax	;除以2并取整数部分的结果
			Shl Eax,1
			.If Eax == Ebx
				Mov Eax,Edx
			.Else
				Lea Eax,[2*Ebx+Ebx+1]
			.EndIf
		.EndW
		
		Push Ecx
		Invoke StdOut,cfm$("1}\n")
		Invoke StdOut,cfm$("表长:")
		Pop Ecx
		Inc Ecx
		Invoke dw2a,Ecx,Offset bBuffer
		Invoke StdOut,Offset bBuffer
		Invoke StdOut,cfm$("\n")
		
		Ret
	Main EndP
	
	Start:
		Call Main
		Invoke ExitProcess,NULL
	End Start
End

{1}
表长:1
{2,1}
表长:2
{3,10,5,16,8,4,2,1}
表长:8
{4,2,1}
表长:3
{5,16,8,4,2,1}
表长:6
{6,3,10,5,16,8,4,2,1}
表长:9
{7,22,11,34,17,52,26,13,40,20,10,5,16,8,4,2,1}
表长:17
{8,4,2,1}
表长:4
{9,28,14,7,22,11,34,17,52,26,13,40,20,10,5,16,8,4,2,1}
表长:20
{10,5,16,8,4,2,1}
表长:7
{11,34,17,52,26,13,40,20,10,5,16,8,4,2,1}
表长:15
{12,6,3,10,5,16,8,4,2,1}
表长:10
{13,40,20,10,5,16,8,4,2,1}
表长:10
{14,7,22,11,34,17,52,26,13,40,20,10,5,16,8,4,2,1}
表长:18
{15,46,23,70,35,106,53,160,80,40,20,10,5,16,8,4,2,1}
表长:18
{16,8,4,2,1}
表长:5
{17,52,26,13,40,20,10,5,16,8,4,2,1}
表长:13
{18,9,28,14,7,22,11,34,17,52,26,13,40,20,10,5,16,8,4,2,1}
表长:21
{19,58,29,88,44,22,11,34,17,52,26,13,40,20,10,5,16,8,4,2,1}
表长:21
{20,10,5,16,8,4,2,1}
表长:8
{21,64,32,16,8,4,2,1}
表长:8
{22,11,34,17,52,26,13,40,20,10,5,16,8,4,2,1}
表长:16
{23,70,35,106,53,160,80,40,20,10,5,16,8,4,2,1}
表长:16
{24,12,6,3,10,5,16,8,4,2,1}
表长:11
{25,76,38,19,58,29,88,44,22,11,34,17,52,26,13,40,20,10,5,16,8,4,2,1}
表长:24
{26,13,40,20,10,5,16,8,4,2,1}
表长:11
{27,82,41,124,62,31,94,47,142,71,214,107,322,161,484,242,121,364,182,91,274,137,412,206,103,310,155,466,233,700,350,175,526,263,790,395,1186,593,1780,890,445,1336,668,334,167,502,251,754,377,1132,566,283,850,425,1276,638,319,958,479,1438,719,2158,1079,3238,1619,4858,2429,7288,3644,1822,911,2734,1367,4102,2051,6154,3077,9232,4616,2308,1154,577,1732,866,433,1300,650,325,976,488,244,122,61,184,92,46,23,70,35,106,53,160,80,40,20,10,5,16,8,4,2,1}
表长:112
{28,14,7,22,11,34,17,52,26,13,40,20,10,5,16,8,4,2,1}
表长:19
{29,88,44,22,11,34,17,52,26,13,40,20,10,5,16,8,4,2,1}
表长:19
{30,15,46,23,70,35,106,53,160,80,40,20,10,5,16,8,4,2,1}
表长:19
{31,94,47,142,71,214,107,322,161,484,242,121,364,182,91,274,137,412,206,103,310,155,466,233,700,350,175,526,263,790,395,1186,593,1780,890,445,1336,668,334,167,502,251,754,377,1132,566,283,850,425,1276,638,319,958,479,1438,719,2158,1079,3238,1619,4858,2429,7288,3644,1822,911,2734,1367,4102,2051,6154,3077,9232,4616,2308,1154,577,1732,866,433,1300,650,325,976,488,244,122,61,184,92,46,23,70,35,106,53,160,80,40,20,10,5,16,8,4,2,1}
表长:107
{32,16,8,4,2,1}
表长:6
{33,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}
表长:27
{34,17,52,26,13,40,20,10,5,16,8,4,2,1}
表长:14
{35,106,53,160,80,40,20,10,5,16,8,4,2,1}
表长:14
{36,18,9,28,14,7,22,11,34,17,52,26,13,40,20,10,5,16,8,4,2,1}
表长:22
{37,112,56,28,14,7,22,11,34,17,52,26,13,40,20,10,5,16,8,4,2,1}
表长:22
{38,19,58,29,88,44,22,11,34,17,52,26,13,40,20,10,5,16,8,4,2,1}
表长:22
{39,118,59,178,89,268,134,67,202,101,304,152,76,38,19,58,29,88,44,22,11,34,17,52,26,13,40,20,10,5,16,8,4,2,1}
表长:35
{40,20,10,5,16,8,4,2,1}
表长:9
{41,124,62,31,94,47,142,71,214,107,322,161,484,242,121,364,182,91,274,137,412,206,103,310,155,466,233,700,350,175,526,263,790,395,1186,593,1780,890,445,1336,668,334,167,502,251,754,377,1132,566,283,850,425,1276,638,319,958,479,1438,719,2158,1079,3238,1619,4858,2429,7288,3644,1822,911,2734,1367,4102,2051,6154,3077,9232,4616,2308,1154,577,1732,866,433,1300,650,325,976,488,244,122,61,184,92,46,23,70,35,106,53,160,80,40,20,10,5,16,8,4,2,1}
表长:110
{42,21,64,32,16,8,4,2,1}
表长:9
{43,130,65,196,98,49,148,74,37,112,56,28,14,7,22,11,34,17,52,26,13,40,20,10,5,16,8,4,2,1}
表长:30
{44,22,11,34,17,52,26,13,40,20,10,5,16,8,4,2,1}
表长:17
{45,136,68,34,17,52,26,13,40,20,10,5,16,8,4,2,1}
表长:17
{46,23,70,35,106,53,160,80,40,20,10,5,16,8,4,2,1}
表长:17
{47,142,71,214,107,322,161,484,242,121,364,182,91,274,137,412,206,103,310,155,466,233,700,350,175,526,263,790,395,1186,593,1780,890,445,1336,668,334,167,502,251,754,377,1132,566,283,850,425,1276,638,319,958,479,1438,719,2158,1079,3238,1619,4858,2429,7288,3644,1822,911,2734,1367,4102,2051,6154,3077,9232,4616,2308,1154,577,1732,866,433,1300,650,325,976,488,244,122,61,184,92,46,23,70,35,106,53,160,80,40,20,10,5,16,8,4,2,1}
表长:105
{48,24,12,6,3,10,5,16,8,4,2,1}
表长:12
{49,148,74,37,112,56,28,14,7,22,11,34,17,52,26,13,40,20,10,5,16,8,4,2,1}
表长:25
{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}
表长:25
欢迎大家回帖分享自己的代码!

免费评分

参与人数 1吾爱币 +3 热心值 +1 收起 理由
苏紫方璇 + 3 + 1 用心讨论,共获提升!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

一二彡亖 发表于 2019-4-22 17:21
完全看不懂
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-16 07:21

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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