1.巴斯卡三角形
题目要求:
C代码:
#include<stdio.h>
long combo(int n, int r)
{
int i;
long p=1;
for(i=1;i<=r;i++)
{
p=p*(n-i+1)/i;//这里没有采用斯巴卡三角形的特性,即下数等于上面两数之和,而是通过行列的关系推出。
}
return p;
}//当然也可以利用二维数组计算,利用下数等于上面两数之和。(这里就不写了)
int main()
{
int n,r,t,m;
scanf("%d",&m);
for(n=0;n<=m;n++)
{
for(r=0;r<=n;r++)
{
int i;
if(r==0)
{
for(i=1;i<=(m-n);i++)
printf("");//排版设计,即输入空格
}
else
printf("");
printf("%d",combo(n,r));
}
printf("n");
}
return 0;
}
#include<string.h>
#include
char color[100];
void swap(int x,int y)//用于交换旗子
{
char t;
t=color[x];
color[x]=color[y];
color[y]=t;
}int main()
{
char temp;
int k=0;
scanf("%c",&temp);
while(temp!='n')
{
color[k]=temp;
k++;
scanf("%c",&temp);
}
intwflag=0;//三根FLAG
int bflag=0;
int rflag=k-1;
int i;
while(wflag<=rflag)
{
if(color[wflag]=='w')
wflag++;
elseif(color[wflag]=='b')
{
swap(bflag,wflag);
bflag++;
wflag++;
}
else
{
while(wflag
rflag--;
swap(rflag,wflag);
rflag--;
}
}
for(i=0;i
printf("%c",color[i]);
printf("n");
return 0;
}