С Новым годом! Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.90/29: Рейтинг темы: голосов - 29, средняя оценка - 4.90
Веб-Разработчик
82 / 82 / 9
Регистрация: 23.01.2012
Сообщений: 701
1

Расчёт счастливого билета. не запускается

01.06.2013, 13:12. Показов 5649. Ответов 13
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте. прошу извинений за нубство. джаву в глаза увидел только вчера. скачал нетбинс начал писать код. вроде написал но выскакивает при компиляции ошибка: Отсутствует главный метод класса "Javaapplication1.JavaApplication.1"

вот сам код:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package javaapplication1;
 
/**
 *
 * @author Itachi261092
 */
public class JavaApplication1 {
 
    /**
     * @param args the command line arguments
     */
    public static void main() {
        // TODO code application logic here
        int min=100000;
        int max=900000;
        int x, y, z, y1,y2,y3,z1,z2,z3;
        String s;
        int scetchik=0;
        for (int i = min; i <= max; i++) {
            x=i;
            s=""+x;
            y1=Integer.parseInt("s[0]");
            y2=Integer.parseInt("s[1]");
            y3=Integer.parseInt("s[2]");
            z1=Integer.parseInt("s[3]");
            z2=Integer.parseInt("s[4]");
            z3=Integer.parseInt("s[5]");
            y=y1+y2+y3;
            z=z1+z2+z3;
            if (y==z) {
            System.out.println(x);
            scetchik++;
            }
        }
        System.out.println(scetchik);
    }
}
Прошу, подскажите что не так?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
01.06.2013, 13:12
Ответы с готовыми решениями:

Определение счастливого билета
Здравствуйте! Напишите пожалуйста программу, которая по введённому номеру трамвайного билета...

Определение счастливого билета
помогите, не могу понять как составить нужно составить программу показывающую...

Алгоритм счастливого билета
«Счастливость» билета можно определить несколькими методами. Наибольшее распространение получили...

Задача на определение счастливого билета.
Вот такая у меня задачка. Счастливый билет. Билет с шестизначиным номером считается счастливым,...

13
91 / 91 / 10
Регистрация: 18.05.2013
Сообщений: 265
01.06.2013, 13:43 2
Вы неверно описали метод входа в приложение.
Должно быть так:
Java
1
public static void main(String[] args)
0
Веб-Разработчик
82 / 82 / 9
Регистрация: 23.01.2012
Сообщений: 701
01.06.2013, 13:46  [ТС] 3
edwin3d, а если так то при компиляции выдаёт вот такой лог:
run:
Exception in thread "main" java.lang.NumberFormatException: For input string: "s[0]"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
at java.lang.Integer.parseInt(Integer.java:449)
at java.lang.Integer.parseInt(Integer.java:499)
at javaapplication1.JavaApplication1.main(JavaApplication1.java:24)
Java Result: 1
СБОРКА УСПЕШНО ЗАВЕРШЕНА (общее время: 0 секунд)
0
91 / 91 / 10
Регистрация: 18.05.2013
Сообщений: 265
01.06.2013, 13:47 4
В догонку ... да и сам код - работать НЕ будет.
К примеру этот бред:
Java
1
 y1=Integer.parseInt("s[0]");
Добавлено через 46 секунд
Вот на него исключение и падает
0
Веб-Разработчик
82 / 82 / 9
Регистрация: 23.01.2012
Сообщений: 701
01.06.2013, 13:49  [ТС] 5
edwin3d, не подскажите как правильно надо? идея такова: задаём минимальное и максмальное 6 значное число, программа должна проверить совпадают ли сумма первых 3 цифр числа с последними 3 цифрами, и если да, то напечатать с перебросом строки это число (6 значное) на экран и плюсануть счётчик. в конце, после перебора, ещё вывести счётчик на экран
0
91 / 91 / 10
Регистрация: 18.05.2013
Сообщений: 265
01.06.2013, 14:00 6
Решать задачи за других - дело неблагодарное.
Могу попробовать Вам подскакать общий принцип, хотя он и в лоб ... но все-же:
1) Читаем искомые числа и убеждаемся, что они есть int
2) превращаем эти числа в массивы, где каждый разряд - это позиция в массиве
Переходим к циклу, который будет проходить по нашим числам
3) Затем проводим проверку факта совпадения суммы 1-х и последних 3-х элементов
4) Прибавляем на единицу 0-й элемент массива, при необходимости проводя сдвиг разрядов
(как при сложении в столбик)
5) Сравниваем текущий массив с максимальным, при р-ве выходим из цикла
1
Веб-Разработчик
82 / 82 / 9
Регистрация: 23.01.2012
Сообщений: 701
01.06.2013, 14:20  [ТС] 7
edwin3d, но я же и не просил решать. я просил только помочь. спасибо. весь принцип мне понятен. кроме пункта про превращение числа в массив разрядов. какой функцией это можно сделать? или вы предлагаете сразу записывать число в массив? то есть
Java
1
2
3
4
5
6
7
8
9
//типа какой то ещё код с объявлением вспомогательных перемнных
int Array={1,0,0,0,0,0}
while (array != {9,0,0,0,0,0}){
if (array[0]+array[1]+array[2]==array[3]+array[4]+array[5]){
System.out.print(array);
scetchik++;
}
for (int y=5; i>=0; y--){
//тут по условию увеличение массива на 1 единицу
что то типа этого?
0
91 / 91 / 10
Регистрация: 18.05.2013
Сообщений: 265
01.06.2013, 15:06 8
По факту - просите.
Потому как не понимаете азов языка, на котором пытаетесь писать.
Для примера - код, который превращает целое число в массив
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
public static int[] intToArr(int in) throws IllegalArgumentException
    {
        if (in<=0) throw new IllegalArgumentException();
        int size = (int)Math.log10(in)+1; // get size of array
        int[] res = new int[size]; // define result array
        int curPos = 0;
        do
        {
            res[curPos] = in%10;
            in /= 10;
        }
        while(++curPos<size);
        return res;
    }
Дальше - просьба помнить, что массивы - объекты и должны (в контексте нашей задачи) сравниваться по
значению.
равно как и инкремент со сдвигом вообще-то посложнее будет того, что Вы набросали.
0
Веб-Разработчик
82 / 82 / 9
Регистрация: 23.01.2012
Сообщений: 701
01.06.2013, 18:30  [ТС] 9
edwin3d, я уже сам накатал код. только там где то ошибка в наращивании массива, не могу пока найти

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
package javaapplication1;
public class JavaApplication1 {
    public static void main(String[] args){
        int arr_min[]={1,0,0,0,0,0};
        int arr_max[]={9,0,0,0,0,0};
        int arr[]=arr_min;
        int y=0;
        int left=0;
        int right=0;
        boolean flag=false;
        boolean plus=false;
        while (arr!=arr_max){
            left=(arr[0]+arr[1]+arr[2]);
            right=(arr[3]+arr[4]+arr[5]);
            if (left==right){
                for(int i=0; i<=5; i++)
                    {
                     if (i==5){
                         System.out.println(arr[i]);
                     }
                     else{
                         System.out.print(arr[i]);
                     }
                    }
                y++;
            }
            if (arr!=arr_max){
                plus=false;
                for (int z=5; z>=0; z--){
                    if (plus==false) {
                            if (flag==true){
                                if (arr[z]==9){
                                arr[z]=0;
                                }
                                else{
                                arr[z]=arr[z]+1;
                                flag=false;
                                }
                            }
                            else{
                                if (arr[z]==9){
                                flag=true;
                                arr[z]=0;
                                }
                                else{
                                    arr[z]=arr[z]+1;
                                }
                            }
                            plus=true;
                    }
                }
                flag=false;
            }
            System.out.println("Колличество счастливых билетов:"+y);
        }
    }
}
0
91 / 91 / 10
Регистрация: 18.05.2013
Сообщений: 265
01.06.2013, 21:14 10
2Itachi261092:
Увы, но я ведь предостерегал Вас от Вашей ошибки .... русским же языком написал: "просьба помнить, что массивы - объекты и должны (в контексте нашей задачи) сравниваться по значению." ... а теперь Вы сами посмотрите как сравниваете Вы ....
1
любитель покушать
687 / 641 / 248
Регистрация: 25.09.2011
Сообщений: 1,313
02.06.2013, 11:06 11
Добавлено через 7 минут
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
import java.util.ArrayList;
 
public class HappyTickets {
    public static void main(String[] args) {
        ArrayList<Integer> happyTickets = getHappyTickets();
 
        /*
         * for(Integer x: happyTickets) { System.out.println(x); }
         */
 
        double probability = happyTickets.size() * 100 / (999_999.0 - 100_000);
 
        System.out.println("Кол-во счастливых билетов: " + happyTickets.size());
        System.out.printf("Вероятность получить счастливый билет: %.3f%%", probability);
 
    }
 
    public static ArrayList<Integer> getHappyTickets() {
        ArrayList<Integer> happyTickets = new ArrayList<>();
 
        for (int i = 100_000; i <= 999_999; ++i) {
            if (isHappy(i)) {
                happyTickets.add(i);
            }
        }
 
        return happyTickets;
    }
 
    private static boolean isHappy(int number) {
        return sumOfDigits(number % 1000) == sumOfDigits(number / 1000);
    }
 
    private static int sumOfDigits(int number) {
        int sum = 0;
 
        while (number > 0) {
            sum += number % 10;
            number /= 10;
        }
 
        return sum;
    }
 
}
Добавлено через 44 секунды
Если надо вывести все числа, расскоментируй 7-9 строки
0
Веб-Разработчик
82 / 82 / 9
Регистрация: 23.01.2012
Сообщений: 701
02.06.2013, 11:16  [ТС] 12
edwin3d, то есть сравниваю объект с числами? у меня до этого в паскале например не возникало таких траблов. щас переделаю. спасибо за совет!

Добавлено через 8 минут
Севак, в вашем коде ошибки в строках 1 3 19
0
любитель покушать
687 / 641 / 248
Регистрация: 25.09.2011
Сообщений: 1,313
02.06.2013, 11:21 13
нет никакой ошибки, джаву обнови просто

Добавлено через 2 минуты
или поменяй 19 строчку на
Java
1
ArrayList<Integer> happyTickets = new ArrayList<Integer>();
1
Веб-Разработчик
82 / 82 / 9
Регистрация: 23.01.2012
Сообщений: 701
02.06.2013, 12:26  [ТС] 14
edwin3d, ваш код для преобразования числа в массив я вообще не могу понять если честно пытаюсь добавить в процедуру код вывода сформированного массива, появляется ошибка. сделал вот так:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
package javaapplication2;
public class JavaApplication2 {
    public static int[] intToArr(int in) throws IllegalArgumentException {
        if (in<=0) throw new IllegalArgumentException();
        int size = (int)Math.log10(in)+1; // get size of array
        int[] res = new int[size]; // define result array
        int curPos = 0;
        do
        {
            res[curPos] = in%10;
            in /= 10;
        }
        while(++curPos<size);{
        return res;}
        for (int i=0; i<=5; i++){
          System.out.print(res[i]);
        }
    }
    public static void main(String[] args) {
        int a=758461;
        intToArr(a);
    }
}
при добавлении for появляется ошибка в 2 строках сразу,
Java
1
public static int[] intToArr(int in) throws IllegalArgumentException {
тут missing return statement
Java
1
for (int i=0; i<=5; i++){
а тут unreacheble statement... в общем не буду удалять аписанное - разобрался. return возвращает значение функции. нужно было печать добавить выше него. огромнейшее спасибо! сейчас уж точно смогу переделать под свою задачу!

Добавлено через 40 минут
Ура товарищи! Я это сделал! благодарю всех за неоценимую помощь и вклад в моё развитие!
полностью рабочий код с подробными комментариями:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
package myfirstjava;
public class MyFirstJavaProgram {
    public static boolean intToArr(int in) throws IllegalArgumentException {//функция обработки массива
        if (in<=0) throw new IllegalArgumentException(); //обработка входного значения (типа int)
        int size = (int)Math.log10(in)+1; // расчёт размера массива
        int[] res = new int[size]; // объявление массива для занесения результата
        int curPos = 0, x, y; //вспомогательные переменные
        boolean flag=false; //флаг для проверки массива
        do //преобразование числа типа int в массив с именем res[]
        {
            res[curPos] = in%10;
            in /= 10;
        }
        while(++curPos<size); // уловие выхода из цикла преобразования массива
        x=res[0]+res[1]+res[2]; // икс равен сумме первых 3 значений массива
        y=res[3]+res[4]+res[5]; // игрек равен сумме 4-6 значений массива
        if (x==y) flag=true; //проверка на равенство левой и правой части
        return flag; // функция расчёта возвращает флаг ИСТИНА если левая часть массива (первые 3 значения) равна правой части (последующие 3 значения)
        
    }
    public static void main(String[] args) { //главная программа
        int min=100000, max=900000, number=0; //объявляем минимальную и максимальную границу и счётчик
        for (int i=min; i<max; i++){ //в цикле наращиваем используемое значение
            if (intToArr(i)==true){ //и передаём каждое на обработку функции intTosArr для обработки массива
                    number++; //если функция вернёт true то наше число является счастливым и мы увеличиваем счётчик на 1
                    System.out.println("№"+number+":"+i); //печать числа соответствующего правилу
            } //конец условия if
        } //конец цикла for
        System.out.println("Колличество счастливых билетов:"+number); //печать значения счётчика
    } //конец программы
}
0
02.06.2013, 12:26
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
02.06.2013, 12:26
Помогаю со студенческими работами здесь

Задача на определение счастливого билета
Определить является ли счастливым билет, т.е. введены 6 цифр, вырезать по три, суммы сложить,...

Программа определяет номер счастливого билета
Программа определяет номер счастливого билета

Определение вероятности получения «счастливого» билета
Программа выводит вероятность, с которой билет может оказаться «счастливым». «Счастливым»...

Выбор счастливого билета случайным образом
Привет всем! Недавно начал изучать C#. И вот наткнулся на задачку о счастливом билете. Но решил...

Определить номер ближайшего счастливого билета
Дали мне школьную задачку с условием: Мальчик Никита купил билет для поездки в общественном...

Найти вероятность получения «счастливого» билета
Здравствуйте! Помогите, пожалуйста, как можно скорее!! Номер автобусного билета состоит из 6 ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
Что такое CQRS и как это реализовать на C# с MediatR
InfoMaster 15.01.2025
Концепция CQRS и её роль в современной разработке В современном мире разработки программного обеспечения архитектурные паттерны играют ключевую роль в создании масштабируемых и поддерживаемых. . .
Как настроить CI/CD с Azure DevOps
InfoMaster 15.01.2025
CI/ CD, или непрерывная интеграция и непрерывное развертывание, представляет собой современный подход к разработке программного обеспечения, который позволяет автоматизировать и оптимизировать процесс. . .
Как настроить CI/CD с помощью Jenkins
InfoMaster 15.01.2025
Введение в CI/ CD и Jenkins В современной разработке программного обеспечения непрерывная интеграция (CI) и непрерывная доставка (CD) стали неотъемлемыми элементами процесса создания качественных. . .
Как написать микросервис на Go/Golang с Kafka и GitHub CI/CD
InfoMaster 14.01.2025
Определение микросервиса, преимущества использования Go/ Golang Микросервис – это архитектурный подход к разработке программного обеспечения, при котором приложение состоит из небольших, независимо. . .
Как написать микросервис с нуля на C# с RabbitMQ, CQRS и CI/CD
InfoMaster 14.01.2025
В современном мире разработки программного обеспечения микросервисная архитектура стала стандартом де-факто для создания масштабируемых и гибких приложений. Этот архитектурный подход предполагает. . .
Как создать интернет-магазин на PHP и JavaScript
InfoMaster 14.01.2025
В современном мире электронная коммерция стала неотъемлемой частью бизнеса. Создание собственного интернет-магазина открывает широкие возможности для предпринимателей, позволяя достичь большей. . .
Как написать Тетрис на Ассемблере
InfoMaster 14.01.2025
Тетрис – одна из самых узнаваемых и популярных компьютерных игр, созданная в 1984 году советским программистом Алексеем Пажитновым. За прошедшие десятилетия она завоевала симпатии миллионы людей по. . .
Как создать игру "Танчики" на Unity3d и C#
InfoMaster 14.01.2025
Разработка игр – это увлекательный процесс, сочетающий в себе творчество и технические навыки. В этой статье мы рассмотрим создание классической игры "Танчики" с использованием Unity3D и языка. . .
Организую платный онлайн микро-курс по доработке Android-клиента Telegram
_Ivana 14.01.2025
Официальная версия и распространенные форки не полностью устраивают? Сделай свою кастомную версию клиента! 4 занятия по 2 часа (2 недели пн, ср 19:00-21:00 по Москве). Первое вводное занятие. . .
Как создать приложение для фитнеса для iOS/iPhone на Kotlin
InfoMaster 14.01.2025
Создание собственного фитнес-приложения — это не только захватывающий, но и полезный процесс, ведь оно может стать вашим верным помощником на пути к здоровому и активному образу жизни. В современных. . .
Как создать приложение магазина для iOS/iPhone на Swift
InfoMaster 14.01.2025
Введение в разработку iOS-приложений Разработка приложений для iPhone и других устройств на базе iOS открывает огромные возможности для создания инновационных мобильных решений. В данной статье мы. . .
Это работает. Скорость асинхронной логики велика. Вопрос видимо останется в стабильности. Плата - огонь!
Hrethgir 13.01.2025
По прошлому проекту в Logisim Evolution https:/ / www. cyberforum. ru/ blogs/ 223907/ blog8781. html прилагаю файл архива проекта в Gowin Eda. Восьмибитный счётчик из сумматора+ генератор сигнала. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru