第一題: 元素的復制
創(chuàng)新互聯(lián)建站2013年至今,是專業(yè)互聯(lián)網(wǎng)技術服務公司,擁有項目成都網(wǎng)站設計、網(wǎng)站制作網(wǎng)站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元仁化做網(wǎng)站,已為上家服務,為仁化各地企業(yè)和個人服務,聯(lián)系電話:028-86922220
import?java.util.Arrays;
public?class?ArrayDemo?{
public?static?void?main(String[]?args)?{
int[]?scores?=?{91,85,98,62,78,93};
int[]?newScores=Arrays.copyOfRange(scores,?0,?5);//復制元素,?左開右閉區(qū)間[0,5)
System.out.println(Arrays.toString(newScores));//調(diào)用數(shù)組工具類的方法轉成字符串并打印
}
}
第二題: 這題雖然使用集合更方便 , 但卻是非常好的一維數(shù)組的訓練題目.
解法一: 集合解決 隨機產(chǎn)生7個不重復的數(shù)字很簡單
import?java.util.HashSet;
import?java.util.Random;
public?class?NumberTest?{
public?static?void?main(String[]?args)?{
HashSetInteger?set=??new?HashSetInteger();//元素不可重復的無序集合
Random?rd=new?Random();//隨機產(chǎn)生器
while(set.size()7)?{
set.add(rd.nextInt(36)+1);//產(chǎn)生1~36的隨機數(shù)
//如果元素重復,?那么添加不上去
}
System.out.println(set);
}
}
解法二:一維數(shù)組 ,解決產(chǎn)生7個數(shù)字, 并升序排列
int[] ? ? ?nums 數(shù)組存儲1~36個數(shù)組
boolean[] flags 數(shù)組存儲的是和nums數(shù)組一一對應的true或者false,如果使用了就標記為true.,如果沒有使用標記為false,
例如 隨機產(chǎn)生了一個下標0 ?,那么查看flags[0] ,如果是true, 那么說明該元素已經(jīng)使用了,重新產(chǎn)生一個隨機數(shù), 如果是false ,那么表示nums[0]沒有被使用
具體代碼如下(稍微留個尾巴, 就是中不中的判斷, 可以把兩個數(shù)組都升序排序,然后元素一一比較,全部相同就是中了)
import?java.util.Arrays;
import?java.util.Random;
public?class?NumberDemo?{
public?static?void?main(String[]?args)?{
int[]?nums=?new?int[36];//長度為36的數(shù)組?,默認全是0
for?(int?i?=?0;?i??nums.length;?i++)?{//利用for循環(huán)賦值1~36
nums[i]=i+1;
}
boolean[]?flags=new?boolean[nums.length];//長度和nums相同的數(shù)組,默認值全是false?,表示全部沒有使用過
//用boolean值表示對應的nums里的元素是否被使用
int[]?result=new?int[7];//存儲結果
Random?rd?=?new?Random();
for?(int?i?=?0;?i??result.length;?i++)?{
int?temp=rd.nextInt(nums.length);//隨機產(chǎn)生下標
//System.out.println(Arrays.toString(result));
if(flags[temp])?{//如果已經(jīng)被使用,那么i-1,并在此循環(huán)
i--;
//System.out.println("號碼"+nums[temp]+"已經(jīng)存在.再次循環(huán)");
}else?{
result[i]=nums[temp];
flags[temp]=true;//標記true表示已經(jīng)使用了
}
}
System.out.println("原始排序:"+Arrays.toString(result));
Arrays.sort(result);//升序排列
System.out.println("升序排列:"+Arrays.toString(result));
}
}
樓主,這個可是我誰不著起來花了半個小時想的算法哈,多給分
我沒有用對象,用了String[] 數(shù)組來模擬你的集合中的表格數(shù)據(jù)
親測通過
代碼開始了
//--------------------------------------------------------------------------------------------------------------------
import java.util.ArrayList;import java.util.List;
public class test {
ListListString[] all=new ArrayListListString[]();
List list=new ArrayList();
//測試數(shù)據(jù)
String[] x={"A","xxxxx","A幣","100"};
String[] x1={"A","xxxxx","A幣","200",};
String[] x2={"B","xxxxx","B幣","300"};
String[] x3={"A","xxxxx","c幣","200"};
public List init()//初始化
{
list.add(x);
list.add(x1);
list.add(x2);
list.add(x3);
return list;
}
//篩選方法
public List chose(List te)
{
ListString[] temp=new ArrayListString[]();
String [] A=(String[]) te.get(0);
ListString[] l=new ArrayListString[]();
for (int j = 0; j te.size(); j++) {
String [] B=(String[]) te.get(j);
if(A[0]==B[0]A[2]==B[2] )//這里篩選
l.add(B);
else
temp.add(B);
}
all.add(l);
return temp;
}
//返回所得結果
public ListListString[] result(){
return all;
}
//主方法---------------------------------------------
public static void main(String[] args) {
test t=new test();
List nt=t.chose(t.init());//初始化測試數(shù)據(jù)
while(true)
{
nt=t.chose(nt);
if(nt.size()==0)
break;
}
ListListString[] res=t.result();
//打印結果
for (int e = 0; e res.size(); e++) {
ListString[] fi= res.get(e);
System.out.println("第"+e+"種");
String [] str=fi.get(0);
for(int i=0;ifi.size();i++){
String[] o=(String[]) fi.get(i);
if(i!=0){
str[3]=(Integer.parseInt(str[3])+Integer.parseInt(o[3]))+"";
}
System.out.println(o[0].toString()+"---"+o[1].toString()+"---"+o[2].toString()+"---"+o[3].toString());
}
System.out.println("合計:\n"+str[0].toString()+"---"+str[2].toString()+"---"+str[3].toString()+"---"+fi.size());
}
}
}
//------------------------------------------------------------------------------
代碼結束咯
打印的結果
第0種
A---xxxxx---A幣---100
A---xxxxx---A幣---200
合計:
A---A幣---400---2
第1種
B---xxxxx---B幣---300
合計:
B---B幣---300---1
第2種
A---xxxxx---c幣---200
合計:
A---c幣---200---1
不知道你是不想要這樣的結果啊,只需修改字符串長度就可以用了
程序員的表白代碼
第一條語言:Java代碼翻譯:直到死之前,每天愛你多一點代碼:while(lifeend){love++;}
第二條語言:C語言代碼翻譯:IcannotsayHellototheWorldwithoutu.代碼:#incldestdio.hintmain(){printf(HelloWorldn);retrn0;}//IcannotsayHellototheWorldwithoutu.
第三條語言:python代碼翻譯:山無陵,江水為竭,冬雷震震,夏雨雪,天地合,乃敢與君絕!代碼:if(mountain.arris==None):if(river.water==None):if(winter.thunder==True):if(summer.snow==True):if(sky.height==ground.height):i.withyou=Falseelse:i.withyou=True.
第四條語言:Erlang代碼代碼翻譯:深圳相遇,至死不渝代碼:-module(you_and_me).-export([start/1]).-record(person,{name,address,status}).start(Name)-one_world(Name).one_world(Name)keep_to_love_you(Person).say_goodbye(Person)-io:format(~p:seeyounextworld!~n,[Person#person.name]).see_you_next_world(Name)-one_world(Name).
第五條語言:Java語言代碼翻譯:愛你到天荒地老代碼:while(!world.destroy){System.out.println(iloveyou);}
給你一個前幾天才幫人寫的
“計算整錢兌零”。程序要求用戶輸入一個雙精度數(shù)代表總元數(shù),就會列出總值與其等價的1元幣、二角五分幣、5分幣和1分幣的數(shù)目。程序報告的數(shù)目是1元幣的最大數(shù)、其次是二角五分幣的最大數(shù),等等,依此類推。只顯示非零的單位。對單個單位顯示單數(shù)單詞,對多于一個單位的顯示復數(shù)單詞
import java.util.Scanner;
public class MoneyCalculate {
public static void main(String[] args) {
int max100 = 0;
int max25 = 0;
int max5 = 0;
int max1 = 0;
double money = getMoneyFromInput();
String str = String.valueOf(money).trim();
String[] ary = str.split("\\.");
max100 = Integer.parseInt(ary[0]);
if(ary.length == 2){
int fen = Integer.parseInt(ary[1]);
if(ary[1].trim().length() == 1){
fen = Integer.parseInt(ary[1]) * 10;
}
max25 = fen / 25;
if(fen % 25 != 0){
fen = fen % 25;
}else{
fen = 0;
}
max5 = fen / 5;
max1 = fen % 5;
}
StringBuilder sb = new StringBuilder(money + " = ");
if(max100 != 0){
sb.append(max100);
sb.append("*1 ");
}
if(max25 != 0){
sb.append(max25);
sb.append("*0.25 ");
}
if(max5 != 0){
sb.append(max5);
sb.append("*0.05 ");
}
if(max1 != 0){
sb.append(max1);
sb.append("*0.01 ");
}
System.out.println(sb.toString());
}
private static double getMoneyFromInput() {
Scanner scanner = new Scanner(System.in);
return scanner.nextDouble();
}
}
-----------
2.49
2.49 = 2*1 1*0.25 4*0.05 4*0.01
-----------
2.5
2.5 = 2*1 2*0.25
-----------
37.23
37.23 = 37*1 4*0.05 3*0.01
-----------------
123.569
123.569 = 123*1 22*0.25 3*0.05 4*0.01