标题:输出围城(趣味题)大家他讨论一下?
只看楼主
心剑菩提
Rank: 1
等 级:新手上路
帖 子:249
专家分:0
注 册:2007-5-17
 问题点数:0 回复次数:6 
输出围城(趣味题)大家他讨论一下?

输出扩展到N*N

3 3 3 3 3

3 2 2 2 3

3 2 1 2 3

3 2 2 2 3

3 3 3 3 3

搜索更多相关主题的帖子: 围城 趣味 输出 
2007-05-21 22:16
soukaseng
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2007-3-13
得分:0 
#include<stdio.h>
void main()
{
int i,j,m,f,f1;
scanf("%d",&m);
for (i=m,f=0;!(f==1 && i==m+1);)
{
for (j=m,f1=0;!(f1==1 && j==m+1);)
{
(i<=j)? printf("%d",j):printf("%d",i);
if (j==1) f1=1;
f1? j++:j--;
}
putchar('\n');
if (i==1) f=1;
f? i++:i--;
}
getch();
}
2007-05-21 23:30
Eastsun
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:32
帖 子:802
专家分:0
注 册:2006-12-14
得分:0 
呵呵,随便写个:
[code]

My BlogClick Me
2007-05-22 00:00
Eastsun
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:32
帖 子:802
专家分:0
注 册:2006-12-14
得分:0 

#include<stdio.h>
#define abs(n) ((n)>0?(n):-(n))
#define max(x,y) ((x)>(y)?(x):(y))
#define num(n,i,j) max(abs((n)-(i)),abs((n)-(j)))+1
main(){
int n,i,j;
for(;;){
scanf(\"%d\",&n);
if(n<=0) break;
for(i=1;i<=2*n-1;i++){
for(j=1;j<=2*n-1;j++) printf(\"%4d\",num(n,i,j));
printf(\"\n\");
}
}
}

My BlogClick Me
2007-05-22 00:01
soukaseng
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2007-3-13
得分:0 
#include<stdio.h>
#define Num(N) (N>0? N:-(N))
#define Max(X,Y) (X>Y? X:Y)
#define Out(N,A,B) Max(Num(N-A),Num(N-B))
void main()
{
int m,i,j;
scanf("%d",&m);
if (m>1 && m<10)
for(i=1;i<=2*m-1;i++)
{
for(j=1;j<=2*m-1;j++) printf("%d",Out(m,i,j)+1);
printf("\n");
}
getch();
}

把ls的改進了一下~~
ls厲害呀~~
隨便寫個也比我的好多了~~
2007-05-22 00:52
soukaseng
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2007-3-13
得分:0 
#include<stdio.h>
void main()
{
int m,i,j;
scanf("%d",&m);
if (m>1 && m<10)
for(i=1;i<=2*m-1;i++)
{
for(j=1;j<=2*m-1;j++) printf("%d",out(m,i,j)+1);
printf("\n");
}
getch();
}
int out(int n,int a,int b)
{
int max,x,y;
x=a-n<0? n-a:a-n;
y=b-a<0? n-b:b-n;
max=x>y? x:y;
return(max);
}

函數版~~
2007-05-22 01:12
a285028516
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2007-5-2
得分:0 
回复:(心剑菩提)输出围城(趣味题)大家他讨论一下...

#include"stdio.h"
main()
{
int i,j,n;

input:
printf("Input n:");
scanf("%d",&n);

for(i=1;i<2*n;i++)
{
for(j=1;j<2*n;j++)
{
if(aabs(j,n)<=aabs(i,n))
printf("%3d",aabs(i,n)+1);
if(aabs(i,n)<aabs(j,n))
printf("%3d",aabs(j,n)+1);
}
printf("\n");
}

goto input;
}

int aabs(int a,int b)
{
if(a>b)
return (a-b);
else
return (b-a);
}

2007-05-22 21:47



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-141318-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.403705 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved