本文目錄一覽:
- 1、大學的 java 競賽
- 2、北大OJ的1012題java做出莫名奇妙的runtime error
- 3、java寫的一個程序在HOJ上提交後顯示輸出超限怎麼回事啊
- 4、java怎樣實現判斷一個最高達1000位數字的整數是不是3的倍數。
- 5、如何調試在OJ中的代碼
- 6、南陽理工OJ第一題A+B problem 用java編程在eclipse上能運行正確,為什麼在OJ上提交時總是CompileError!
大學的 java 競賽
現在沒有單純的java的比賽了,我參加過的就是非要是一些網站類的比賽,當然也不必要求用java。
在網站方面就是對於j2ee的學習了,這種比賽需要對數據處理的能力,比如java封轉好的一些數據類型ArrayList或者哈希表之類,都要會用。
單純從java語言本身來看的話,你首先要對面向對象有一個認識,其實就是java中的抽象機制,接口和繼承。你還要了解java的內存機制,比如其著名的垃圾回收機制。
最後一個進階的東西就是多線程,這是一個編程永恆的主題,並且java對於多線程支持的非常的好。如果以上java的知識你都掌握,就可以看看設計模式了,可以提高能力。當然也可以讀java的源碼
經驗大概就是這些,比賽的一個關鍵是你有足夠的技術積累,不單單是你的代碼量,還有總結和自己的認識。
其實比賽而言,看的就是誰把知識理解的深刻,不要總是停留在表面,祝你取得好成績。
北大OJ的1012題java做出莫名奇妙的runtime error
這樣的檢測沒有進行有效地檢測
當m = 5 以後,計算量比較大,時間就太長。。
#include stdio.h
void POJ1012();
//int result[]={0,2,7,5,30,169,441,1872,7632,1740,93313,459901,1358657,2504881};
int main()
{
POJ1012();
return 0;
}
void POJ1012()
{
int i,k;
int result[14]={0};
scanf(“%d”,k);
while(k!=0)
{
// printf(“%d\n”,result[k]);
int leftguys,m,flag,cur,next;
i=1;
while(true)
{
if(result[k]!=0)
{
printf(“%d\n”,result[k]);
break;
}
//m為移動的個數,cur為移動前索引,以0為起點
//m只能為k+1的整數倍或者是k+1的整數倍加1,
//因為只剩下K+1個人時,cur索引必位於k或k+1上
m=(k+1)*i;
for(int j=0;j2;j++)
{
cur=-1;
flag=true;
for(leftguys=2*k;leftguysk;–leftguys)
{
next = (cur+m)%leftguys;
if(nextk)
{
flag=false;
break;
}
cur = next-1;
}
if(flag)
{
printf(“%d\n”,m);
result[k]=m;
break;
}
m=(k+1)*i+1;
}
if(flag)
break;
++i;
}
scanf(“%d”,k);
}
}
java寫的一個程序在HOJ上提交後顯示輸出超限怎麼回事啊
oj超限一般分為運行內存超限和運行時間超限,可以從這兩方面找找原因。
java怎樣實現判斷一個最高達1000位數字的整數是不是3的倍數。
能被3整除的數的特徵:各個數位上的數相加之和必定為3的倍數。
import java.util.Scanner;
public class Main
{
public static void main(String[] args)
{
try (Scanner sc = new Scanner(System.in))
{
while (sc.hasNext())
{
String num = sc.next();
int sum = 0;
for (int i = 0; i num.length(); i++)
sum += Integer.parseInt(“” + num.charAt(i));
System.out.println(sum % 3 == 0 ? “yes” : “no”);
}
}
}
}
如果使用BigInteger也行,只不過OJ平台可能對時空複雜度有要求,容易過不去。
import java.math.BigInteger;
import java.util.Scanner;
public class Main
{
public static void main(String[] args)
{
final BigInteger bigThree = new BigInteger(“3”);
try (Scanner sc = new Scanner(System.in))
{
while (sc.hasNextBigInteger())
{
BigInteger num = sc.nextBigInteger();
System.out.println(num.mod(bigThree).equals(BigInteger.ZERO) ? “yes” : “no”);
}
}
}
}
運行結果不變。
如何調試在OJ中的代碼
Java-Preferences-,確保以下選項都勾選上
2. 應該就大功告成了 。
4,Properties;Installed JREs,選擇Edit. 在Eclipse中,Window-Preferences-Libraries,Window-,選擇Add,在JRE Home中選擇JDK路徑(因為只有JDK支持源碼調試)。使用Alternate JRE中你創建的JDK. 右鍵你的工程項目,並且給它合適的命名。退出保存後;Compiler。
3,選擇JDK路徑,找到JRE System Library在Eclipse中,Java Build Path-Java-
南陽理工OJ第一題A+B problem 用java編程在eclipse上能運行正確,為什麼在OJ上提交時總是CompileError!
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner cin = new Scanner(System.in);
int a = cin.nextInt(), b = cin.nextInt();
System.out.println(a + b);
}
}
用這個試試
原創文章,作者:ETJZ,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/147789.html