ehsanrezaeefar
سه شنبه 11 خرداد 1389, 10:41 صبح
برنامه ای بنویسید که 5 عدد را از ورودی گرفته و با استفاده از 4 عدد اول و 4 عمل اصلی جمع و ضرب و تقسیم و تفریق عدد پنجم را به دست آورد
باسلام به دوستان اين كد java اين برنامه هستش:
import java.util.*;
public class Main{
public static double num[] = new double[5];
public static String p [] ={"abcd","abdc","acbd","acdb","adbc","adcb","bacd","badc","bcad","bcda","bdac","bdca","cabd","cadb","cbad","cbda","cdab","cdba","dabc","dacb","dbac","dbca","dcab","dcba"};
public static boolean flag;
public static void main(String[] args) throws Exception{
Scanner inp=new Scanner(System.in);
double i,j;
while(inp.hasNext()){
num[0] = inp.nextInt();
if(num[0]==-1)break;
num[1] = inp.nextInt();num[2] = inp.nextInt();num[3] = inp.nextInt();num[4] = inp.nextInt();
flag = false;
for(i=0;i<24;i++){
if(find(f(0,i),f(1,i),f(2,i),f(3,i))) break;
}
if(i!=24){
System.out.println((int)num[0]+" "+(int)num[1]+" "+(int)num[2]+" "+(int)num[3]+" "+(int)num[4]+" "+"OK!");
}else System.out.println((int)num[0]+" "+(int)num[1]+" "+(int)num[2]+" "+(int)num[3]+" "+(int)num[4]+" "+"NO!");
}
}
public static double f(double d, double n){
switch(p[(int)n].charAt((int)d)){
case 'a':
return num[0];
case 'b':
return num[1];
case 'c':
return num[2];
case 'd':
return num[3];
}
return 0;
}
public static boolean find(double n1,double n2, double n3, double n4){
double i,j,k,l;
for(i=1;i<=4;i++)
for(j=1;j<=4;j++)
for(k=1;k<=4;k++)
if(compute(n1,n2,n3,n4,i,j,k)) return true;
return false;
}
public static boolean compute(double n1,double n2,double n3,double n4,double i,double j,double k){
double sum;
sum = 0;
try{
//case1 (A)k(Bj(CiD))
if(i==1)
sum = n3 + n4;
else if(i==2)
sum = n3 - n4;
else if(i==3)
sum = n3 * n4;
else if(i==4)
sum = n3 / n4;
if(j==1)
sum = n2 + sum;
else if(j==2)
sum = n2 - sum;
else if(j==3)
sum = n2 * sum;
else if(j==4)
sum = n2 / sum;
if(k==1)
sum = n1 + sum;
else if(k==2)
sum = n1 - sum;
else if(k==3)
sum = n1 * sum;
else if(k==4)
sum = n1 / sum;
}catch(Exception e){}
if(sum>=num[4]-0.01 && sum<=num[4]+0.01) return true;
sum = 0;
try{
//case2 (A)k((BjC)i(D))
if(j==1)
sum = n2 + n3;
else if(j==2)
sum = n2 - n3;
else if(j==3)
sum = n2 * n3;
else if(j==4)
sum = n2 / n3;
if(i==1)
sum = sum + n4;
else if(i==2)
sum = sum - n4;
else if(i==3)
sum = sum * n4;
else if(i==4)
sum = sum / n4;
if(k==1)
sum = n1 + sum;
else if(k==2)
sum = n1 - sum;
else if(k==3)
sum = n1 * sum;
else if(k==4)
sum = n1 / sum;
}catch(Exception e){}
if(sum>=num[4]-0.01 && sum<=num[4]+0.01) return true;
sum = 0;
try{
//case3 ((AkB)j(CiD))
if(i==1)
sum = n3 + n4;
else if(i==2)
sum = n3 - n4;
else if(i==3)
sum = n3 * n4;
else if(i==4)
sum = n3 / n4;
double sum2=0;
if(k==1)
sum2 = n1 + n2;
else if(k==2)
sum2 = n1 - n2;
else if(k==3)
sum2 = n1 * n2;
else if(k==4)
sum2 = n1 / n2;
if(j==1)
sum = sum2 + sum;
else if(j==2)
sum = sum2 - sum;
else if(j==3)
sum = sum2 * sum;
else if(j==4)
sum = sum2 / sum;
}catch(Exception e){}
if(sum>=num[4]-0.01 && sum<=num[4]+0.01) return true;
sum = 0;
try{
//case4 ((Ak(BjC))iD)
if(j==1)
sum = n2 + n3;
else if(j==2)
sum = n2 - n3;
else if(j==3)
sum = n2 * n3;
else if(j==4)
sum = n2 / n3;
if(k==1)
sum = n1 + sum;
else if(k==2)
sum = n1 - sum;
else if(k==3)
sum = n1 * sum;
else if(k==4)
sum = n1 / sum;
if(i==1)
sum = sum + n4;
else if(i==2)
sum = sum - n4;
else if(i==3)
sum = sum * n4;
else if(i==4)
sum = sum / n4;
}catch(Exception e){}
if(sum>=num[4]-0.01 && sum<=num[4]+0.01) return true;
sum = 0;
try{
//case5 ((AkB)jC)iD)
if(k==1)
sum = n1 + n2;
else if(k==2)
sum = n1 - n2;
else if(k==3)
sum = n1 * n2;
else if(k==4)
sum = n1 / n2;
if(j==1)
sum = sum + n3;
else if(j==2)
sum = sum - n3;
else if(j==3)
sum = sum * n3;
else if(j==4)
sum = sum / n3;
if(i==1)
sum = sum + n4;
else if(i==2)
sum = sum - n4;
else if(i==3)
sum = sum * n4;
else if(i==4)
sum = sum / n4;
}catch(Exception e){}
if(sum>=num[4]-0.01 && sum<=num[4]+0.01) return true;
return false;
}
}
كسي كد اسمبلي 8086 اين برنامه رو داره يا كسي هست كه توضيح بده چطوري ميتونم
اين كد جاوا رو به اسمبلي تبديل كنم؟
باسلام به دوستان اين كد java اين برنامه هستش:
import java.util.*;
public class Main{
public static double num[] = new double[5];
public static String p [] ={"abcd","abdc","acbd","acdb","adbc","adcb","bacd","badc","bcad","bcda","bdac","bdca","cabd","cadb","cbad","cbda","cdab","cdba","dabc","dacb","dbac","dbca","dcab","dcba"};
public static boolean flag;
public static void main(String[] args) throws Exception{
Scanner inp=new Scanner(System.in);
double i,j;
while(inp.hasNext()){
num[0] = inp.nextInt();
if(num[0]==-1)break;
num[1] = inp.nextInt();num[2] = inp.nextInt();num[3] = inp.nextInt();num[4] = inp.nextInt();
flag = false;
for(i=0;i<24;i++){
if(find(f(0,i),f(1,i),f(2,i),f(3,i))) break;
}
if(i!=24){
System.out.println((int)num[0]+" "+(int)num[1]+" "+(int)num[2]+" "+(int)num[3]+" "+(int)num[4]+" "+"OK!");
}else System.out.println((int)num[0]+" "+(int)num[1]+" "+(int)num[2]+" "+(int)num[3]+" "+(int)num[4]+" "+"NO!");
}
}
public static double f(double d, double n){
switch(p[(int)n].charAt((int)d)){
case 'a':
return num[0];
case 'b':
return num[1];
case 'c':
return num[2];
case 'd':
return num[3];
}
return 0;
}
public static boolean find(double n1,double n2, double n3, double n4){
double i,j,k,l;
for(i=1;i<=4;i++)
for(j=1;j<=4;j++)
for(k=1;k<=4;k++)
if(compute(n1,n2,n3,n4,i,j,k)) return true;
return false;
}
public static boolean compute(double n1,double n2,double n3,double n4,double i,double j,double k){
double sum;
sum = 0;
try{
//case1 (A)k(Bj(CiD))
if(i==1)
sum = n3 + n4;
else if(i==2)
sum = n3 - n4;
else if(i==3)
sum = n3 * n4;
else if(i==4)
sum = n3 / n4;
if(j==1)
sum = n2 + sum;
else if(j==2)
sum = n2 - sum;
else if(j==3)
sum = n2 * sum;
else if(j==4)
sum = n2 / sum;
if(k==1)
sum = n1 + sum;
else if(k==2)
sum = n1 - sum;
else if(k==3)
sum = n1 * sum;
else if(k==4)
sum = n1 / sum;
}catch(Exception e){}
if(sum>=num[4]-0.01 && sum<=num[4]+0.01) return true;
sum = 0;
try{
//case2 (A)k((BjC)i(D))
if(j==1)
sum = n2 + n3;
else if(j==2)
sum = n2 - n3;
else if(j==3)
sum = n2 * n3;
else if(j==4)
sum = n2 / n3;
if(i==1)
sum = sum + n4;
else if(i==2)
sum = sum - n4;
else if(i==3)
sum = sum * n4;
else if(i==4)
sum = sum / n4;
if(k==1)
sum = n1 + sum;
else if(k==2)
sum = n1 - sum;
else if(k==3)
sum = n1 * sum;
else if(k==4)
sum = n1 / sum;
}catch(Exception e){}
if(sum>=num[4]-0.01 && sum<=num[4]+0.01) return true;
sum = 0;
try{
//case3 ((AkB)j(CiD))
if(i==1)
sum = n3 + n4;
else if(i==2)
sum = n3 - n4;
else if(i==3)
sum = n3 * n4;
else if(i==4)
sum = n3 / n4;
double sum2=0;
if(k==1)
sum2 = n1 + n2;
else if(k==2)
sum2 = n1 - n2;
else if(k==3)
sum2 = n1 * n2;
else if(k==4)
sum2 = n1 / n2;
if(j==1)
sum = sum2 + sum;
else if(j==2)
sum = sum2 - sum;
else if(j==3)
sum = sum2 * sum;
else if(j==4)
sum = sum2 / sum;
}catch(Exception e){}
if(sum>=num[4]-0.01 && sum<=num[4]+0.01) return true;
sum = 0;
try{
//case4 ((Ak(BjC))iD)
if(j==1)
sum = n2 + n3;
else if(j==2)
sum = n2 - n3;
else if(j==3)
sum = n2 * n3;
else if(j==4)
sum = n2 / n3;
if(k==1)
sum = n1 + sum;
else if(k==2)
sum = n1 - sum;
else if(k==3)
sum = n1 * sum;
else if(k==4)
sum = n1 / sum;
if(i==1)
sum = sum + n4;
else if(i==2)
sum = sum - n4;
else if(i==3)
sum = sum * n4;
else if(i==4)
sum = sum / n4;
}catch(Exception e){}
if(sum>=num[4]-0.01 && sum<=num[4]+0.01) return true;
sum = 0;
try{
//case5 ((AkB)jC)iD)
if(k==1)
sum = n1 + n2;
else if(k==2)
sum = n1 - n2;
else if(k==3)
sum = n1 * n2;
else if(k==4)
sum = n1 / n2;
if(j==1)
sum = sum + n3;
else if(j==2)
sum = sum - n3;
else if(j==3)
sum = sum * n3;
else if(j==4)
sum = sum / n3;
if(i==1)
sum = sum + n4;
else if(i==2)
sum = sum - n4;
else if(i==3)
sum = sum * n4;
else if(i==4)
sum = sum / n4;
}catch(Exception e){}
if(sum>=num[4]-0.01 && sum<=num[4]+0.01) return true;
return false;
}
}
كسي كد اسمبلي 8086 اين برنامه رو داره يا كسي هست كه توضيح بده چطوري ميتونم
اين كد جاوا رو به اسمبلي تبديل كنم؟