问题:
如图1所示,填入1~12的数字。使得每条直线上的数字之和都相同。图中,已经替你填好了3个数字,请你计算星号位置所代表的数字是多少?
#include<stdio.h>
#include<iostream>
#include<cstring>
using namespace std;
int main()
{
long long a[12];
a[1]=1;a[2]=8;a[12]=3;
for(int i=2;i<=12;i++)//i=a[3]
for(int j=2;j<=12;j++)//j=a[4]
for(int k=2;k<=12;k++)///k=a[6]]
for(int l=2;i<=12;l++)//l=a[7]
{
int flag=1;
a[5]=26-8-i-j;
a[8]=26-1-i-k;
a[9]=26-8-3-k;
a[10]=26-3-a[5]-l;
a[11]=26-1-j-l;
if(1+i+k+a[8]==26&&1+j+l+a[11]==26&&a[8]+a[9]+a[10]+a[11]==26&&8+i+j+a[5]==26&&a[5]+l+a[10]+3==26&&8+k+a[9]+3==26)
cout<<k<<endl;//输出a[6]
}
return 0;
}
建议描述一下你的算法使用场景
for(a[3]=2;a[3]<=12;a[3]=+1)这一句话里最后a[3]+=1
现在你一直在重复在这一个值
并且后面的循环都要把=+改成+=
还有最里面的一层循环a[6]是不是要改成a[7]?
不过你的if条件好像一直不满足,可以说一下这个输出条件嘛?