69,373
社区成员
发帖
与我相关
我的任务
分享
#include "stdio.h"
void fun(int n,int t){
int i,j;i=j=0;
if(n==1) return;
fun(n/2,t);
while(i++<t)printf(" ");
while(j++<n/2)printf("*");
printf("\n");
fun(n/2,n/4+t);
return;
}
int main(void){
fun(16,0);
return 0;
}
package 数据结构和算法.算法.排序.递归;
/**
* @author DarlingDD
*
*/
public class 星号图
{
/**
* @param args
*/
public static void main(String[] args)
{
printGrap(0,8);
}
private static void printGrap(int spaceNumber,int starNumber)
{
if(starNumber==2)
{
printALine(spaceNumber,1);
printALine(spaceNumber,2);
printALine(spaceNumber+2/2,1);
}
if(starNumber>2)
{
printGrap(spaceNumber,starNumber/2);
printALine(spaceNumber,starNumber);
printGrap(spaceNumber+starNumber/2,starNumber/2);
}
}
private static void printALine(int spaceNumber,int starNumber)
{
for (int i = 0; i < spaceNumber; i++)
System.out.print(' ');
for (int i = 0; i < starNumber; i++)
System.out.print('*');
System.out.println();
}
}
# include<stdio.h>
# include<math.h>
char a[100][100];
void print(int n, int x, int y)
{
if (n==1) { a[x][y]='*'; return;}
print(n-1, x, y);
for(int i=0; i<pow(2,n-1);i++) a[x+int(pow(2,n-1))-1][y+i]='*';
print(n-1, x+pow(2,n-1),y+pow(2,n-2));
}
int main()
{
int n;
while(1){
printf("n=");
scanf("%d",&n);
if (n==0) break;
print(n,0,0);
for(int i=0; i<pow(2,n)-1; i++){
for(int j=0; j<pow(2,n-1); j++)
if (a[i][j]==0) printf(" ");
else printf("%c",a[i][j]);
printf("\n");
}
}
}