C趣味程序百例(19)由8个整数形成奇特的立方体

文章作者 100test 发表时间 2007:03:10 17:30:41
来源 100Test.Com百考试题网


62.由8个整数形成奇特的立方体
任意给出8个整数,将这8个整数分别放在一个立方体的八个顶点上,要求每个面上的四个数之和相等。
*问题分析与算法设计
简化问题:将8个顶点对应数组中的8个元素,将“每个面上的四个数之和皆相等”转换为数组无素之间和的相等关系。这里的关键在于正确地将立方体的8个顶点与数组的8个元素对应。
可以利用简单的穷举方法建立8个数的全部排列。
*程序与程序注释
#include
#include
void main()
{
int a[9],ii=0,i,a1,a2,a3,a4,b1,b2,b3,b4,flag.
for(i=1.i<=8.i ) /*输入个数*/
{
printf("Please enter [%d]number:",i).
scanf("%d",&.a[i]).
ii =a[i].
}
printf("******************************************\n").
if(ii%2) /*和为奇数则输入的8个数不可用*/
{
printf("Sorry they cant be constructed required cube!\n").
exit(0).
}
for(flag=0,a1=1.a1<=8.a1 ) /*flag:完成标记.flag=1.表示完成*/
for(a2=1.a2<=8.a2 ) /*采用八重循环建立八个整数的全排列*/
if(a2!=a1) /*前两个数不能相同*/
for(a3=1.a3<=8.a3 )
if(a3!=a2&.&.a3!=a1) /*前三个数不能相同*/
for(a4=1.a4<=8.a4 )
if(a4!=a3&.&.a4!=a2&.&.a4!=a1) /*前四个数不能相同*/
for(b1=1.b1<=8.b1 )
if(b1!=a4&.&.b1!=a3&.&.b1!=a2&.&.b1!=a1) /*不能相同*/
for(b2=1.b2<=8.b2 )
if(b2!=b1&.&.b2!=a4&.&.b2!=a3&.&.b2!=a2&.&.b2!=a1)
for(b3=1.b3<=8.b3 )
if(b3!=b2&.&.b3!=b1&.&.b3!=a4&.&.b3!=a3&.&.b3!=a2&.&.b3!=a1)
/*不能取相同的数*/
for(b4=1.b4<=8.b4 )
if(b4!=b2&.&.b4!=b1&.&.b4!=b3&.&.b4!=a4&.&.b4!=a3&.&.b4!=a2&.&.b4!=a1)

相关文章


2006年9月计算机二级ACCESS考试答案参考
报名信息的正确性至关重要
C趣味程序百例(19)由8个整数形成奇特的立方体
备考须知:考前的准备工作
C趣味程序百例(19)1~9组成三个3位的平方数
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛