| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 499 人关注过本帖
标题:[求助]哪位能详解一下这个程序
只看楼主 加入收藏
jibatian
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2007-6-27
收藏
 问题点数:0 回复次数:4 
[求助]哪位能详解一下这个程序

让您见笑了.

#include <iostream>
#include <algorithm>
using namespace std;

void main()
{
int a[9],n,s,i;
for(i=0;i<9;++i)
{
a[i]=i+1;
}

while(next_permutation(a,a+9))
{
n=10*(10*a[0]+a[1])+a[2];
s=0;
for(i=3;i<9;++i)
{
s =10*s+a[i]; }
if(n*n==s)
{
for(i=0;i<3;++i)
cout<<a[i];
cout<<"'s square is ";
for(i=3;i<9;++i)
cout<<a[i];
cout<<endl;
}
}
}

搜索更多相关主题的帖子: 详解 
2007-07-01 18:19
terisevend
Rank: 1
等 级:新手上路
帖 子:62
专家分:0
注 册:2007-6-2
收藏
得分:0 
http://bbs.bc-cn.net/viewthread.php?tid=150758&star=at
你的这程序和这里的一样,解决的就是这里的问题。而这贴中3楼的程序我写的。
首先,就是定义一个数组,并且里面存有1-9。
然后后面的那个while。。。就是用来判断1-9的全部排序是否已经排完了(我的理解。。。因为我写的那个就是有用到求得所有排序,而且,那permutation的字面了解就是排序。)
如果没排完,就获得一个与前面所求得的序列不重复的序列。然后便取其前3个数据组成一个三位数,并且判断其平方是否与后6个数据组成的6位数相等,如果相等,输出他们。
而我的程序的思路与这大致相同,都是对1-9的所有排序进行分析判断。。。

[此贴子已经被作者于2007-7-1 19:22:13编辑过]


2007-07-01 19:20
天空の城
Rank: 1
等 级:新手上路
帖 子:38
专家分:0
注 册:2007-7-1
收藏
得分:0 
以下是引用terisevend在2007-7-1 19:20:24的发言:
http://bbs.bc-cn.net/viewthread.php?tid=150758&star=at
你的这程序和这里的一样,解决的就是这里的问题。而这贴中3楼的程序我写的。
首先,就是定义一个数组,并且里面存有1-9。
然后后面的那个while。。。就是用来判断1-9的全部排序(其实应该说是全排列,并不是sort一样的排序)是否已经排完了(我的理解。。。因为我写的那个就是有用到求得所有排序,而且,那permutation的字面了解就是排序。)
如果没排完,就获得一个与前面所求得的序列不重复的序列。然后便取其前3个数据组成一个三位数,并且判断其平方是否与后6个数据组成的6位数相等,如果相等,输出他们。
而我的程序的思路与这大致相同,都是对1-9的所有排序进行分析判断。。。


2007-07-01 19:26
terisevend
Rank: 1
等 级:新手上路
帖 子:62
专家分:0
注 册:2007-6-2
收藏
得分:0 
谢谢天空の城的指教,顺便指教一下,next_permutation的原理。谢谢···

2007-07-01 20:01
天空の城
Rank: 1
等 级:新手上路
帖 子:38
专家分:0
注 册:2007-7-1
收藏
得分:0 
原理我也不清楚,代码在下面。

template<class _BI> inline
bool next_permutation(_BI _F, _BI _L)
{
_BI _I = _L;
if (_F == _L || _F == --_I)
return (false);
while(1)
{
_BI _Ip = _I;
if (*--_I < *_Ip)
{
_BI _J = _L;
while(!(*_I < *--_J));
iter_swap(_I, _J);
reverse(_Ip, _L);
return (true);
}
if (_I == _F)
{
reverse(_F, _L);
return (false);
}
}
}

2007-07-02 14:14
快速回复:[求助]哪位能详解一下这个程序
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.047910 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved