永发信息网

将1,2,3,…,9共9个数排成下列的三角形(用C++编程)将1,2,…,9共9个数排成下列形态的三

答案:2  悬赏:30  手机版
解决时间 2021-02-11 06:27
将1,2,3,…,9共9个数排成下列的三角形(用C++编程)将1,2,…,9共9个数排成下列形态的三
最佳答案
要使效率高,那就不能用递归函数,而要自己去迭代.#include stdio.hvoid 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; }}}
全部回答
我明天再问问老师,叫他解释下这个问题
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
农业银行(高坪营业所)地址好找么,我有些事要
无电焊接笔的使用应该注意哪些事项
索丝曼瘦胸谁知道?
金堂福兴加油站地址有知道的么?有点事想过去
在地税局交的房产税能退回来吗?
工商银行遵义分行医学院支行汇川区长沙路汽车
五兴便利店怎么去啊,有知道地址的么
猜谜语:有个小娃娃,两人跟它要,跑到谁跟前,
新年感言总结
农村信用社九坪分社地址在哪,我要去那里办事
7.5kw打气泵电机是多少转
中国农业银行(高坪镇营业所)地址好找么,我有
青藏地区所产的小麦、青稞等穗大粒饱,单产高
六号路/清亮东道(路口)我想知道这个在什么地
贵阳银行(遵义分行)地址在什么地方,想过去办
推荐资讯
【五台山游记】五台山游记 作文
相框后面的四个铁片配件怎样装?
我想买一辆二手摩托车,125,价位在1000元左
国内的几家快递公司哪家最快,哪家最慢?
老黄纯手工牛轧糖怎么去啊,我要去那办事
皇朝家私我想知道这个在什么地方
17Career的职小牛实习生计划有听过的么?有没
交通的那个逆行用英语怎么说
上波罗树沟我想知道这个在什么地方
湖南真的美女多吗?
LOL求个电一10来级的小号玩互选征召,谢谢。
qq附近人1.76km是多远
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?