java作业不能运行

import java.util.Scanner;

public class zhsh_nhh extends Thread{

/**
  * @param args
  */
 private int n,start,end;
 public int q;
 public int[][] zhshQ=new int[10000][22];
 int[] b=new int[22];
 public zhsh_nhh(int x,int start,int end)
 {
  this.q=0;
  this.start=start;
  this.end=end;
  this.n=x;
 }
 public void out(int ans)
 {
  for(int i=1;i<=n;i++)
  {
   for(int j=1;j<=n;j++)
    if(zhshQ[ans-1][i]==j)
     System.out.print(‘q‘);
    else System.out.print(‘*‘);
   System.out.print(‘\n‘);
   
  }
  
 }

public void dfs(int k,int b[])
 {
    
     if(k>n)
     {
        
         q++;
        // System.out.println(q+"ddddddddddddd");
         for(int l=1;l<=n;l++)
          zhshQ[q][l]=b[l];
         return ;
     }
     int i,j;
     for(i=1;i<=n;i++)
         {

for(j=1;j<k;j++)
            {
                if(i==b[j])
                    break;
                if(Math.abs(k-j)==Math.abs(i-b[j]))
                    break;
            }
   if(j<k)
                continue;
           // System.out.print("草泥马"+i);
             b[k]=i;
             dfs(k+1,b);
        
         }
 }
 public void run()
 {
  //System.out.print("开始运行我了");
  for(int i=start;i<=end;i++)
  {
   b[1]=i;
   dfs(2,b);
  
  }
  
 }
 public static void main(String[] args) throws InterruptedException {
  // TODO Auto-generated method stub
  Scanner zhshinput=new Scanner(System.in);
  int zhshn=zhshinput.nextInt();
  //并行解法
  //long k=0;
  long begin,end,endend;
  
  //并行解法
  zhsh_nhh t1=new zhsh_nhh(zhshn,1,zhshn/2);
  zhsh_nhh t2=new zhsh_nhh(zhshn,zhshn/2+1,zhshn);
  begin=System.currentTimeMillis();
  t1.start();
  t2.start();
  t1.join();
  t2.join();
  end=System.currentTimeMillis();
  
  
  //串行解法
  zhsh_nhh t=new zhsh_nhh(zhshn,1,zhshn);
  long b=System.currentTimeMillis();
  t.start();
  t.join();
  endend=System.currentTimeMillis();
  
  System.out.println("并行的时间为");
  System.out.println(end-begin);
  System.out.println("串行的时间为");
  System.out.println(endend-b);
  System.out.println("加速比为:"+(endend-b)*1.0/(end-begin)*1.0);
  System.out.println("共有"+t.q+"种解法");
  
  int x;
  int ans;
  System.out.println("请输入要求解的解方法:\n 1串行解法\n 2:并行解法\n 0:退出");
  x=zhshinput.nextInt();
  
  while(x>0)
  {
  
   System.out.println("请输入要求第几种解方法:");
   ans=zhshinput.nextInt();
   if(ans>t.q)
    System.out.println("输入量错误的数据");
   if(x==2)
   {
    if(ans<=t1.q)
    t1.out(ans);
     else
       t2.out(ans-t1.q);
       }
    else if(x==1)
    {
    t.out(ans);
    }
    else System.out.println("输入了错误的数据\n");
   System.out.println("请输入要求解的解方法:\n 1串行解法\n 2:并行解法\n 0:退出");
  }
 }

}

时间: 2024-09-29 02:25:29

java作业不能运行的相关文章

Hadoop之 - 剖析 MapReduce 作业的运行机制(MapReduce 2)

在0.20版本及更早期的系列中,mapred.job.tracker 决定了执行MapReduce程序的方式.如果这个配置属性被设置为local(默认值),则使用本地的作业运行器.运行器在耽搁JVM上运行整个作业.它被设计用来在小的数据集上测试和运行MapReduce程序. 如果 mapred.job.tracker 被设置为用冒号分开的主机和端口对(主机:端口),那么该配置属性就被解释为一个jobtracker地址,运行器则将作业提交给该地址的jobtracker. Hadoop 2.x引入了

Java开发和运行环境的搭建

Java开发需要准备的东西? JDK+Eclipse 其中JDK的意思是Java开发工具包,Eclipse是进行用于做Java程序开发的工具(当然你也可以用记事本什么的去做). 其他开发工具:JCreator,JBuilder,... jdk的介绍和安装教程度娘里面到处都是,这里自己也在啰嗦一下吧. 关于jdk的详细介绍: JDK是Java Development Kit的缩写,即Java开发工具集.JDK是整个Java的核心,包括了Java运行环境(JRE).Java开发工具和Java基础类库

java拾遗4----一个简单java程序的运行全过程

简单说来,一个java程序的运行需要编辑源码.编译生成class文件.加载class文件.解释或编译运行class中的字节码指令. 下面有一段简单的java源码,通过它来看一下java程序的运行流程: 1 class Person 2 3 { 4 5 private String name; 6 7 private int age; 8 9 10 11 public Person(int age, String name){ 12 13 this.age = age; 14 15 this.na

Java语言的运行机制

计算机语言分为编译型和解释性两种类型. 编译型: ( C/C++.Pascal/Object Pascal(Delphi) ) 编译型语言写的程序执行之前,需要一个专门的编译过程,把程序编译成为机器语言的文件,比如exe文件,以后要运行的话就不用重新翻译了,直接使用编译的结果就行了(exe文件),因为翻译只做了一次,运行时不需要翻译,所以编译型语言的程序执行效率高. 解释性: ( Java.JavaScript.VBScript.Perl.Python.Ruby.MATLAB ) 解释性语言在运

如何利用 JConsole观察分析Java程序的运行,进行排错调优(转)

如何利用 JConsole观察分析Java程序的运行,进行排错调优 博客分类: JAVA JavaOracleSUNEclipseJDK 一.JConsole是什么 从Java 5开始 引入了 JConsole.JConsole 是一个内置 Java 性能分析器,可以从命令行或在 GUI shell 中运行.您可以轻松地使用 JConsole(或者,它更高端的 “近亲” VisualVM )来监控 Java 应用程序性能和跟踪 Java 中的代码. 二.如何启动JConsole 如果是从命令行启

java项目如何运行

Java普通项目运行: 项目代码写完后,如果需要通过bat文件(windows).shell文件(linux)启动项目,可以通过操作系统自带的命令行来运行java jdk. 比如linux环境下,可以通过运行如下命令: java "-Xms128m -Xmx1024m" -Dlogback.configurationFile="$BASE_DIR/conf/logback.xml" -cp "$BASE_DIR/module/*:$BASE_DIR/lib

常见的几种语言C,C#,JAVA,Python的运行原理

相对于常见的几种语言C,C#,JAVA,Python的运行原理 由于CPU只能识别机器码,即我们常说的二进制码01010101 有任何语言在计算机上运行最终都要转化成CPU能够识别的机器码010101 对于C语言:通过C语言代码编译器将C语言写出的代码进行编译得到机器码,然后机器码就可以交给CPU去识别,即运行 对于其他语言:代码编译器将代码编译成字节码,然后通过各自的虚拟机将字节码进一步处理(转换)成机器码(0101010101),然后在处理器上运行 Python和C 首先Python是用C开

JAVA运行环境 和 Java Applet的运行环境 的区别

Java小程序,也就是Java Applet,可以在Web浏览器中运行.Java Applet必须以<applet>脚本的形式嵌入到HTML页面中,才能在web浏览器中运行. 之前总以为本地安装了JDK,指定好JAVA_HOME和PATH环境变量,所有的Java程序就都可以运行了,后来有个同事让我帮他解决web浏览器中不能运行一个项目管理软件的甘特图时,才发现Java Applet和一般的Java应用的运行环境配置是不一样的. 在Windows上运行Java应用程序,只要有JDK的二进制目录,

Mac10.10 Intellij idea 14 您需要安装旧java se 6 运行环境才能打开

今天装好了10.10,安装开发环境:jdk1.8,intellij idea 14,打开idea的时候提示:您需要安装旧java se 6 运行环境才能打开.费解!之前10.9的时候安装就没有出现问题. 解决办法:到应用程序中找到idea,右键-->显示包内容-->Contents-->Info.plist,用文本编辑器编辑.找到 <key>JVMVersion</key> <string>1.6*</string> 修改为 <key