Една задача на Java

4 отговора 325 прегледа
#1

Една задача на Java

Реших да ви провокирам и да сложа една програмка, която е написана на изключително елементарен език(не претендирам за най-рационално решение). Тя открива броя на някакви числа в интервала от 10 до 9000000. Въпроса ми е какви са тези числа. Нарочно съм сложил еднобуквени променливи, за да не ви подсказват за какво става въпрос(въпреки че и еднобуквени, не всичките са избрани случайно). Ако искате да си пуснете програмката, за да видите тези числа и броя им, имайте предвид, че процеса ще ви отнеме от 30сек. до 3мин.(в зависимост от бързината на компютъра ви; аз с нея си тествам настройките на компютъра - коя е "най-забързваща").Ако не ви се чака толкова много, можете да намалите броя на изпълненията в основния цикъл например на 2500000. Съревновават се клубове "Java", "Информатика" и "Програмисти". Е, успех.

--------------------------------------------------------------

package untitled2;
import ccj.*;
public class Zachislata {

public static void main(String []args) {
int o=0;
for (int g=10;g<=9000000;g++) {
int N=g,d=1,c=0,n=N,l=10,f=0,
ij=0,r=0;
while(d!=0){
d=N/10;
N=d;
c++;
}
N=n;
int[]m=new int[c];
int[]p=new int[c];
for(int i=0;i<=c-3;i++)
l*=10;
int l2=l/10;
for(int i=0;i<c;i++){
m=N/l;
N-=m*l;
l/=10;
}
l=l2*10;
N=n;
for(int i=0;i<=c-1;i++){
ij=0;
for(int j=0;j<c-1;j++){
if(j==i) ij++;
int gr=l2;
if(m[ij]==0) l2=0;
f+=m[ij]*l2;
l2=gr;
l2/=10;
ij++;
}
l2=l/10;
if(f!=0){
if((N%f)==0)
p=0;
else p=1;
}
else p=1;
f=0;
}
for(int w=0;w<=c-2;w++)
if(p[w]==0) r++;
if(r==(c-1)){
System.out.println(n);
o++;
}
}
System.out.println("Broia na chislata v interwala");
System.out.println("ot 10 do 9 000 000 e: "+o);
for(;;);
}
}

--------------------------------------------------------------

П.с.Ако искате подсказки - насреща съм.

Елементарно, драги ми Уотсън!

Редактирано от jj на

Отговор
в отговор на jj #2

Re: Една задача на Java

q da vidim kolkko gluposti si napisal
1.m=N/l; -kak prisvoqvash na int[] ->int
2.N-=m*l; sashttoo
3.p=0; p ti e int[] a ne int
4.p=1 na 2 mesta

uj si prilojna i boi trqbvalo da znaesh Java a pishesh gluposti...Slkuchaino rabotq na tozi ezxik i vodq uprajneniq na tozi ezik v FMI - dali pyk ne vodq i na teb.:))
za takova neshto na ispit se pishe 2.00
ot men da go znaesh

Отговор
в отговор на aз #3

Re: Една задача на Java


Програмката работи, но още навремето като я пуснах ме хвана яд, защото не знаех как се подравнява текст в дир-а.
Пробвай я.
"Истината е някъде там"

Елементарно, драги ми Уотсън!
Отговор
в отговор на jj #4

Re: Една задача на Java

raboti kogato kacnat marsiancite
vij si glupostite: prisvoqvash na masiv int.....

Отговор
в отговор на az #5

Опс

Опс, прав си, квадратните скоби се възприемат като мета език и изчезват, затова от едно място нататък текста става на италик, защото квадратни скоби + буквичката i в тях е всъщност част от метаезика за включване на италик.
Тук, признавам, си прав.

Късо съединение. Потрес!
Отговор