我需要编写一个打印到屏幕的功能。如果输入为5,则输出为:
+**
****
*******
***********
****************
这是我目前的代码:
int recursions(int number,int condition)
{
if(condition < 0)
{
printf("\n");
return 0;
}
else
{
printf("**");
recursions(number + 2,condition - 1);
}
}
int main()
{
int number;
printf("Please give a number!\n");
scanf("%d",&number);
printf("+");
recursions(number,number);
getch();
}
答案 0 :(得分:1)
#include <stdio.h>
void print(int n){
if(n > 0){
putchar('*');
print(n-1);
} else
putchar('\n');
}
void recursions(int n,int cond){
if(cond > 0){
print(n*(n-1)/2 + 1);
recursions(n+1, cond-1);
}
}
int main(){
int number;
printf("Please give a number!\n");
scanf("%d",&number);
printf("+");
recursions(2,number);
getch();
}
答案 1 :(得分:0)
我是在python
中完成的,您可以轻松将其翻译为C
:
$ python3
>>> def fun(n):
... if n==1:
... print('+**')
... return 2
... else:
... m = fun(n-1)
... print('*' * (n+m))
... return n+m
...
>>> fun(5)
+**
****
*******
***********
****************
16