JS代码修改
、#include<iostream>usingnamespacestd;intnum[6];intcount=0;inta[6][6];voiddfs(intstep,...
、#include<iostream>
using namespace std;
int num[6];
int count=0;
int a[6][6];
void dfs(int step,int i)
{
int j,k,f=0,flag=1;
for(j=i+1;j<=5;j++){
flag=1;
for(k=1;k<=step;k++){
if(a[num[k]][j]*a[j][num[k]]==0) flag=0;
}
if(flag){
num[step+1]=j;
dfs(step+1,j);
f++;
}
}
if(!f&&step>=3){
for(j=1;j<=step;j++)
printf("P%d ",num[j]);
printf("can be a clique\n");
for(j=1;j<=step;j++)
for(k=j+1;k<=step;k++)
printf("P%dP%d is a vectice in it\n",num[j],num[k]);
printf("\n\n");
count++;
}
}
int main()
{
a[1][2]=1;
a[1][3]=1;
a[1][4]=1;
a[2][1]=1;
a[2][4]=1;
a[3][1]=1;
a[3][4]=1;
a[3][5]=1;
a[5][3]=1;
a[4][2]=1;
a[4][3]=1;
a[4][1]=1;
int i;
for(i=1;i<=5;i++){
num[1]=i;
dfs(1,i);
}
printf("there are %d cliques\n",count);
}
上面的是用C++写的程序,在VC下运行正确。下面是我自己修改为JS代码
var num = new Array();
var count=0;
var a=new Array();
for( var i=0;i<6;i++ ){
a[i] = new Array();
for( var j=0;j<6;j++ )
a[i][j] = -1;
}
function dfs5( step, i)
{
var j,k,f=0,flag=1;
for(j=i+1;j<=5;j++){
flag=1;
for(k=1;k<=step;k++){
if(a[num[k]][j]*a[j][num[k]]==0) flag=0;
}
if(flag){
num[step+1]=j;
dfs5(step+1,j);
f++;
}
}
if(!f&&step>=3){
//document.write(step);
for(j=1;j<=step;j++)
document.write("P" + num[j] + " " );
document.write("can be a clique<p>");
for(j=1;j<=step;j++)
for(k=j+1;k<=step;k++)
document.write("P" + num[j] + " " + "P" + num[k] + " is a vectice in it<p>");
document.write("<p><p>");
count++;
}
}
function fun5()
{
a[1][2]=1;
a[1][3]=1;
a[1][4]=1;
a[2][1]=1;
a[2][4]=1;
a[3][1]=1;
a[3][4]=1;
a[3][5]=1;
a[5][3]=1;
a[4][2]=1;
a[4][3]=1;
a[4][1]=1;
var i;
for(i=1;i<=5;i++){
num[1]=i;
dfs5(1,i);
}
//printf("there are %d cliques\n",count);
document.write("there are " + count + " cliques<p>");
}
但是很遗憾,我的修改没有正确。输出的结果不正确。
我想知道,有没有那些语法区别(between JS and C++)我是没有注意到的,导致结果不对。
我已经用了<input type="button" value="program Five" onclick="fun5()" />所以是有结果的。只是结果不正确。不是没有结果。而是多了很多。估计是某些地方两种语言执行方式不同? 展开
using namespace std;
int num[6];
int count=0;
int a[6][6];
void dfs(int step,int i)
{
int j,k,f=0,flag=1;
for(j=i+1;j<=5;j++){
flag=1;
for(k=1;k<=step;k++){
if(a[num[k]][j]*a[j][num[k]]==0) flag=0;
}
if(flag){
num[step+1]=j;
dfs(step+1,j);
f++;
}
}
if(!f&&step>=3){
for(j=1;j<=step;j++)
printf("P%d ",num[j]);
printf("can be a clique\n");
for(j=1;j<=step;j++)
for(k=j+1;k<=step;k++)
printf("P%dP%d is a vectice in it\n",num[j],num[k]);
printf("\n\n");
count++;
}
}
int main()
{
a[1][2]=1;
a[1][3]=1;
a[1][4]=1;
a[2][1]=1;
a[2][4]=1;
a[3][1]=1;
a[3][4]=1;
a[3][5]=1;
a[5][3]=1;
a[4][2]=1;
a[4][3]=1;
a[4][1]=1;
int i;
for(i=1;i<=5;i++){
num[1]=i;
dfs(1,i);
}
printf("there are %d cliques\n",count);
}
上面的是用C++写的程序,在VC下运行正确。下面是我自己修改为JS代码
var num = new Array();
var count=0;
var a=new Array();
for( var i=0;i<6;i++ ){
a[i] = new Array();
for( var j=0;j<6;j++ )
a[i][j] = -1;
}
function dfs5( step, i)
{
var j,k,f=0,flag=1;
for(j=i+1;j<=5;j++){
flag=1;
for(k=1;k<=step;k++){
if(a[num[k]][j]*a[j][num[k]]==0) flag=0;
}
if(flag){
num[step+1]=j;
dfs5(step+1,j);
f++;
}
}
if(!f&&step>=3){
//document.write(step);
for(j=1;j<=step;j++)
document.write("P" + num[j] + " " );
document.write("can be a clique<p>");
for(j=1;j<=step;j++)
for(k=j+1;k<=step;k++)
document.write("P" + num[j] + " " + "P" + num[k] + " is a vectice in it<p>");
document.write("<p><p>");
count++;
}
}
function fun5()
{
a[1][2]=1;
a[1][3]=1;
a[1][4]=1;
a[2][1]=1;
a[2][4]=1;
a[3][1]=1;
a[3][4]=1;
a[3][5]=1;
a[5][3]=1;
a[4][2]=1;
a[4][3]=1;
a[4][1]=1;
var i;
for(i=1;i<=5;i++){
num[1]=i;
dfs5(1,i);
}
//printf("there are %d cliques\n",count);
document.write("there are " + count + " cliques<p>");
}
但是很遗憾,我的修改没有正确。输出的结果不正确。
我想知道,有没有那些语法区别(between JS and C++)我是没有注意到的,导致结果不对。
我已经用了<input type="button" value="program Five" onclick="fun5()" />所以是有结果的。只是结果不正确。不是没有结果。而是多了很多。估计是某些地方两种语言执行方式不同? 展开
展开全部
c++ 的main函数是自动运行的,
而你的fun5 却没有自动运行, 要么 在body里面 的onload 事件里加上,
要么,你在你 script的末尾 加上 fun5(); 这样,他才能运行啊..是不?
...
for(i=1;i<=5;i++){
num[1]=i;
dfs5(1,i);
}
//printf("there are %d cliques\n",count);
document.write("there are " + count + " cliques<p>");
}
fun5();
</script>
或者
<body onload=fun5();>
而你的fun5 却没有自动运行, 要么 在body里面 的onload 事件里加上,
要么,你在你 script的末尾 加上 fun5(); 这样,他才能运行啊..是不?
...
for(i=1;i<=5;i++){
num[1]=i;
dfs5(1,i);
}
//printf("there are %d cliques\n",count);
document.write("there are " + count + " cliques<p>");
}
fun5();
</script>
或者
<body onload=fun5();>
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询