模拟了计算过程,比如“进位”之类的,估计应该还有更好的做法
<br />
dd <- NULL<br />
s <- 50<br />
for (i in 1:s){<br />
n <- i<br />
m <- matrix(0, nrow = n, ncol = 2*n - 1)<br />
for(i in 1:n) m[i, i:(i + n - 1)] <- 1<br />
z <- apply(m,2, sum)</p>
<p> repeat{<br />
if (sum(z < 10) == 2*n - 1) break else {<br />
tmp1 <- z %/% 10<br />
tmp1 <- c(0, tmp1[1:(2*n - 2)])<br />
tmp2 <- ifelse(z >= 10, z %% 10, z)<br />
z <- tmp1 + tmp2<br />
}<br />
}<br />
z <- paste(rev(z), collapse = '')<br />
ns <- paste(rep(' ', s - i), collapse= '')<br />
dd[[i]] <- paste(ns, z, ns, sep='')<br />
}<br />
for(i in 1:s) cat(dd[i],'\n')<br />
</p>