组合数学中的“幻方”,用C语言编写程序来进行运算
答案:2 悬赏:40 手机版
解决时间 2021-11-26 01:33
- 提问者网友:贪了杯
- 2021-11-25 15:12
组合数学中的“幻方”,用C语言编写程序来进行运算
最佳答案
- 五星知识达人网友:零点过十分
- 2021-11-25 16:21
先判断每行每列以及对角线的和是否相等
再判断所有元素不相等
不难吧,自己做做就出来了追问能不能给个完整程序?追答n阶幻方是由前n*n个自然数组成的一个n阶方阵(每个自然数只出现一次),其各行、各列及两条对角线所含的n个数的和相等。给你一个n阶方阵,判断其是否n阶幻方。
#include
int main()
{
int n;
while(scanf("%d",&n)!=EOF)
{
if(n==0) break;
int i,j,sumi,sumj,a[10][10],s1=0,s2=0,f=1;
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
{
scanf("%d",&a[i][j]);
}
}
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
{
if(j==i) s1=s1+a[i][j];
if(i+j==n+1) s2=s2+a[i][j];
}
}
if(s1!=s2) f=0;
else
{
for(i=1;i<=n;i++)
{
sumi=0;sumj=0;
for(j=1;j<=n;j++)
{
sumi=sumi+a[i][j];
sumj=sumj+a[j][i];
}
if(sumi!=s1||sumj!=s2) {f=0;break;}
}
}
if(f==1) printf("Yes\n");
else printf("No\n");
}
return 0;
}
给分哦
再判断所有元素不相等
不难吧,自己做做就出来了追问能不能给个完整程序?追答n阶幻方是由前n*n个自然数组成的一个n阶方阵(每个自然数只出现一次),其各行、各列及两条对角线所含的n个数的和相等。给你一个n阶方阵,判断其是否n阶幻方。
#include
int main()
{
int n;
while(scanf("%d",&n)!=EOF)
{
if(n==0) break;
int i,j,sumi,sumj,a[10][10],s1=0,s2=0,f=1;
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
{
scanf("%d",&a[i][j]);
}
}
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
{
if(j==i) s1=s1+a[i][j];
if(i+j==n+1) s2=s2+a[i][j];
}
}
if(s1!=s2) f=0;
else
{
for(i=1;i<=n;i++)
{
sumi=0;sumj=0;
for(j=1;j<=n;j++)
{
sumi=sumi+a[i][j];
sumj=sumj+a[j][i];
}
if(sumi!=s1||sumj!=s2) {f=0;break;}
}
}
if(f==1) printf("Yes\n");
else printf("No\n");
}
return 0;
}
给分哦
全部回答
- 1楼网友:雾月
- 2021-11-25 16:41
先说明一下什么是幻方啊,我还真不知道,不会想让我为了什么是幻方在来一次百度知道吧
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯