C实例No.11|排三角形

题目

将1,2,······,9共9个数排成下列形态的三角形。
以下句号是方便展现效果,请忽略

a

b。。c

d。。。。e

f。。g。h。。i

其中:a~i分别表示1,2,······,9中的一个数字,并要求同时满足下列条件:

(1)a<f<i;

(2)b<d, g<h, c<e

(3)a+b+d+f=f+g+h+i=i+e+c+a=P

程序要求:

根据输入的边长之和P,输出所有满足上述条件的三角形的个数。

输入

每个测试文件只包含一组测试数据,每组输入一个整数P,表示边长之和。

输出

对于每组输入数据,输出所有满足上述条件的三角形的个数。

如果无解,则输出"Not exist"(引号不输出)。

示例

在这里插入图片描述
在这里插入图片描述

代码

#include<stdio.h>
int main()
{
	int k[9]= {1,2,3,4,5,6,7,8,9};
	int a,b,c,d,e,f,g,h,i,j,l=0,m,n,o,p,q,r,s,t,u,P;
	scanf("%d",&P);
	for(j=0; j<9; j++)
	{
		a=k[j];
		for(m=0; m<9; m++)
			if(a!=k[m])
			{
				b=k[m];
				for(n=0; n<9; n++)

					if(k[n]!=a&&k[n]!=b)
					{
						c=k[n];
						for(o=0; o<9; o++)

							if(k[o]!=a&&k[o]!=b&&k[o]!=c)
							{
								d=k[o];
								for(p=0; p<9; p++)

									if(k[p]!=a&&k[p]!=b&&k[p]!=c&&k[p]!=d)
									{
										e=k[p];
										for(q=0; q<9; q++)

											if(k[q]!=a&&k[q]!=b&&k[q]!=c&&k[q]!=d&&k[q]!=e)
											{
												f=k[q];
												for(r=0; r<9; r++)

													if(k[r]!=a&&k[r]!=b&&k[r]!=c&&k[r]!=d&&k[r]!=e&&k[r]!=f)
													{
														g=k[r];
														for(s=0; s<9; s++)
															if(k[s]!=a&&k[s]!=b&&k[s]!=c&&k[s]!=d&&k[s]!=e&&k[s]!=f&&k[s]!=g)
															{
																h=k[s];
																for(t=0; t<9; t++)

																	if(k[t]!=a&&k[t]!=b&&k[t]!=c&&k[t]!=d&&k[t]!=e&&k[t]!=f&&k[t]!=g&&k[t]!=h)
																	{
																		i=k[t];
																		if(a<f&&f<i&&b<d&&g<h&&c<e&&a+b+d+f==f+g+h+i&&f+g+h+i==i+e+c+a&&i+e+c+a==P)
																			l=l+1;
																	}

															}
													}

											}

									}

							}

					}

			}
	}

	if(l==0)
		printf("Not exist");
	else
		printf("%d",l);
	return 0;
}
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值