Je viens de commencer avec Programming Challenges et essaye de résoudre 3n+1 problem. Mon programme donne RUNTIME ERROR dans le juge UVA et WRONG REPONSE dans la programmation défis juge. Mais je ne trouve aucune erreur dans le programme .. Tous les cas de test donnent des réponses correctes pour moi. Quelqu'un peut-il me dire ce qui pourrait être fauxMa solution 3n + 1 en Java a jugé une erreur incorrecte/d'exécution, pourquoi?
1: import java.io.*;
2: import java.util.*;
3: class Main{
4: public static void main(String args[]) throws IOException{
5: BufferedReader br=new BufferedReader(new
InputStreamReader(System.in));
6: String s,ar[];
7: long aray[]=new long[50];
8: int n=0,maxcount=0,count;
9: long t,a,b,c=1,co=0;
10: while((s=br.readLine()).length()>0) {
11: ar=s.split(" ");
12: aray[n++]=Long.parseLong(ar[0]);
13: aray[n++]=Long.parseLong(ar[1]);
14: }
15:
16: for(int j=0;j<n;) {
17: c=1;
18: maxcount=0;
19: a=aray[j++];
20: b=aray[j++];
21: co=b-a+1;
22: if(a>b){ //special case
23: c=-1;
24: co=a-b+1;
25: }
26: for(long i=a,k=0;k<co;i+=c,k++){
27: t=i;
28: count=1;
29: while(t!=1){
30: if(t%2==0) t=t/2;
31: else t=(3*t)+1;
32: count++;
33: }
34: maxcount=(maxcount>count)?maxcount:count;
35: }
36: System.out.println(a+" "+b+" "+maxcount);
36: System.exit(0);
38: }
39: }
Un pointeur sur l'affectation serait cool. Et le formatage du code (indentation). Et en utilisant des noms lisibles pour les noms de variables. –
BTW - vous n'êtes pas seul: [voici une autre question sur cette tâche] (http://stackoverflow.com/questions/1997215/why-is-my-3n1-problem-solution-wrong). –
En dehors de tests unitaires significatifs, je suggère que vous utilisiez également des méthodes pour diviser votre code et les noms de variables significatifs. Il y a tellement d'endroits où votre code pourrait exploser, savez-vous quelle était l'exception d'exécution? –