如何打印以下图案?如果给出了行和列。例如
x=5
y=6
从 x 开始,下一行是上一行的总和值。
55555
5+5+5+5+5=25
那么下一行必须是
25252
output:
55555
25252
16161
15151
13131
99999
谁能帮我写一个程序来解决这个问题?
如何打印以下图案?如果给出了行和列。例如
x=5
y=6
从 x 开始,下一行是上一行的总和值。
55555
5+5+5+5+5=25
那么下一行必须是
25252
output:
55555
25252
16161
15151
13131
99999
谁能帮我写一个程序来解决这个问题?
你可以使用这样的东西。
def f(x, y):
orig_x = x
for _ in range(y):
tmp = (str(x)*orig_x)[:orig_x]
x = sum([int(i) for i in tmp])
print(tmp)
f(5,6)
55555
25252
16161
15151
13131
99999
不是最有效的代码,但是..
#get the total given the initial number/row
def getSum(number):
total = 0
for num in number:
total += int(num)
return total
#print the row given the number and the number of columns
def printRow(number, columns):
counter = 0
row = ""
while (counter < columns):
for num in number:
row += num
counter += 1
if (counter >= columns):
break
print(row)
return row
x = 5 #initial number
y = 6 #number of rows
m = x
for z in range(y):
n = getSum(str(x))
x = printRow(str(n), m)
public static void pattern(int N, int K) {
var originalN = N;
for (int i = 0; i < K; i++) {
String temp = new String(new char[originalN]).replace("\0", Integer.toString(N));
String newTemp = temp.substring(0, originalN);
System.out.println(newTemp);
N = addDigits(newTemp);
}
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
int K = sc.nextInt();
pattern(N, K);
}