将1,2,3,…,9共9个数排成下列的三角形(用C++编程)
来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/11/08 09:23:11
将1,2,3,…,9共9个数排成下列的三角形(用C++编程)
将1,2,…,9共9个数排成下列形态的三角形.
a
b c
d e
f g h i
其中:i分别表示1,2,…,9中的一个数字,并要求同时满足下列条件:
(1)a
将1,2,…,9共9个数排成下列形态的三角形.
a
b c
d e
f g h i
其中:i分别表示1,2,…,9中的一个数字,并要求同时满足下列条件:
(1)a
要使效率高,那就不能用递归函数,而要自己去迭代.
#include "stdio.h"
void main()
{
//设一个查找表,可以快速地判断某数是否为素数
bool prime[40]={
0,0,1,1,0,1,0,1,0,0,
0,1,0,1,0,0,0,1,0,1,
0,0,0,1,0,0,0,0,0,1,
0,1,0,0,0,0,0,1,0,0
};
//快速判断哪些数已经被选中
bool used[21]=;
//a[0]无用,a[1]到a[20]分别存放选出的数
//因为考虑到题目要求的循环性
//所有的解都可以位移使得1出现在a[1]位置
//所以我们就直接规定1放在a[1]
int a[21]=;
//已经选中的数的个数,
int cnt=1;
//当发生无数可选的情况时,需要回退一步
//此变量用来表示是否发生了回退
bool tag=false;
int i;
while(cnt<20)
{
//如果发生了回退,则直接从上次选的数的后面开始查找
//不是回退的话,则从2开始查找
for(i=(tag?a[cnt+1]+1:2);i<21;i++)
if(!used[i] && prime[i+a[cnt]])
{
//找到符合条件的数
a[++cnt]=i;
used[i]=true;
tag=false;
break;
}
//找到解
if(cnt==20 && prime[a[1]+a[20]])
{
for(i=1;i<21;i++)
printf("%d ",a[i]);
return;
}
//如果发生了无数可选的情况,则回退一步
else if(cnt==20 || i==21)
{
used[a[cnt--]]=false;
tag=true;
}
}
}
#include "stdio.h"
void main()
{
//设一个查找表,可以快速地判断某数是否为素数
bool prime[40]={
0,0,1,1,0,1,0,1,0,0,
0,1,0,1,0,0,0,1,0,1,
0,0,0,1,0,0,0,0,0,1,
0,1,0,0,0,0,0,1,0,0
};
//快速判断哪些数已经被选中
bool used[21]=;
//a[0]无用,a[1]到a[20]分别存放选出的数
//因为考虑到题目要求的循环性
//所有的解都可以位移使得1出现在a[1]位置
//所以我们就直接规定1放在a[1]
int a[21]=;
//已经选中的数的个数,
int cnt=1;
//当发生无数可选的情况时,需要回退一步
//此变量用来表示是否发生了回退
bool tag=false;
int i;
while(cnt<20)
{
//如果发生了回退,则直接从上次选的数的后面开始查找
//不是回退的话,则从2开始查找
for(i=(tag?a[cnt+1]+1:2);i<21;i++)
if(!used[i] && prime[i+a[cnt]])
{
//找到符合条件的数
a[++cnt]=i;
used[i]=true;
tag=false;
break;
}
//找到解
if(cnt==20 && prime[a[1]+a[20]])
{
for(i=1;i<21;i++)
printf("%d ",a[i]);
return;
}
//如果发生了无数可选的情况,则回退一步
else if(cnt==20 || i==21)
{
used[a[cnt--]]=false;
tag=true;
}
}
}
C语言编程实现用9个数字排成没有重复数字的完全平方数
将1~9共9个数分别填入圆中,使三角形个边上的4个数之和为17
将连续的奇数1,3,5,7,9,……排成如下数表,用十字框框出5个数,如下图所示.
求3个数的平均值用c语言编程
将连续的奇数1,3,5,7,9...排成如下数表,用十字框框出5个数(如图所示)
C语言编程:已知有下列一组数据:3,1,5,9,6,2,编程求出其和及最小值.
先将自然数1到2012按如图中的方式排成一个长方形陈列,用一个长方形框出9个数:(1)图中的9个数和是多少
将连续的奇数1,3,5,7,9……,排成如图所示的数阵.(1)十字框中的5个数的和与中间数23有
将连续的奇数1,3,5,7,9……,排成如图所示的数阵.(1)十字框中的5个数的和与中间数23有什么关系?
C语言编程求1到10共10个数中取出3个不同的数,共有几种组合方式
观察下列数:-1,2,-3,4,-5,6,-7...将下列数排成下列形式所以-201个数是第几行和是从左边数起是第几个数
将连续的奇数1,3,5,7,…排成如下数字表,用十子框框出5个数,如图所示.