J语言打印格式化质数时的对齐问题求助
J语言质数输出左对齐解决方案
要让100以内的质数左对齐输出,你可以对每个质数单独转成字符串后逐个打印,避开J默认的数值对齐机制。修改后的代码如下:
echo each ": p:i.25
为什么这样有效:
- J的
echo在输出数值数组时,会自动按数组中最大数值的位数对齐所有元素,所以一位数质数前会被补上空格,和两位数的对齐。 ":是J里把数值转成字符串的动词,each会将这个操作应用到p:i.25的每一个质数元素上,生成一个由字符串组成的数组。echo each会依次输出数组里的每个字符串,每个字符串都会左对齐显示,完全符合你的预期格式。
你之前试的":p:i.25 1是把整个质数数组转成了一个带对齐空格的长字符串,所以没法解决问题;而用each拆分处理每个元素,直接绕开了批量数值的对齐逻辑,自然就消除了前导空格。
内容的提问来源于stack exchange,提问作者user21524036
相关产品推荐
相关产品推荐

