[第十四关]神的九十亿名字

这项任务是Arthur C. Clarke 的短篇小说《神的九十亿名字》的变体。这是一个整数拆分的问题。

整数 1 有 1 个拆分形式“1”。
整数 2 有 2 个拆分形式“1+1”和“2”。
整数 3 有 3 个拆分形式“1+1+1”、“2+1”和“3”。
整数 4 有 5 个拆分形式“1+1+1+1”、“2+1+1”、“2+2”、“3+1”、“4”。
整数 5 有 7 个拆分形式“1+1+1+1+1”、“2+1+1+1”、“2+2+1”、“3+1+1”、“3+2”、 “4+1”、“5”。
任务

输出一个整数拆分的三角,行号就是整数,这一行的所有数之和是这个整数可以拆分的数量。实现的方法有很多,递归法、动态规划等,开启你的智慧吧!穷尽你的方法实现吧

参考代码

SetBatchLines -1
 
InputBox, Enter_value, Enter the no. of lines sought
array := []
Loop, % 2*Enter_value - 1
	Loop, % x := A_Index
		y := A_Index, Array[x, y] := 1
 
x := 3
 
Loop
{
	base_r := x - 1
	, x++
	, y := 2
	, index := x
	, new := 1
 
	Loop, % base_r - 1
	{
		array[x, new+1] := array[x-1, new] + array[base_r, y]
		, x++
		, new ++
		, y++
	}
	x := index
	If ( mod(x,2) = 0 )
	{
		to_run := floor(x - x/2)
		, y2 := to_run + 1
	}
	Else
	{
		to_run := x - floor(x/2)
		, y2 := to_run
	}
	Loop, % to_run
	{
		array[x, y2] := array[x-1, y2-1]
		, y2++
		If ( y2 = Enter_value + 1 ) && ( x = Enter_value ) 
		{
			Loop, % Enter_value
			{
				Loop, % x11 := A_Index
				{
					y11 := A_Index
					, string2 .= " " array[x11, y11]
				}
				string2 .= "`n"
			}
			MsgBox % string2
			ExitApp
		}
	}
}
 
~Esc::ExitApp

给TA捐赠
共{{data.count}}人
人已捐赠
其他近期更新

[第1000关]ZigZag遍历二维数组

2022-2-22 22:52:55

游戏

不知道后台取色现在用什么

2022-2-23 19:46:57

2 条回复 A文章作者 M管理员
  1. 坏坏

    学习学习

  2. user14586

    学习了

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索