Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / UInt64.MaxValue / 7 сообщений из 7, страница 1 из 1
03.04.2012, 10:52:04
    #37735829
Mash6a
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
UInt64.MaxValue
Люди есть такая тема:Большое число. Реализовать класс большого целого положительного числа > UInt64.MaxValue,
с возможностями сложения, вычитания, умножения, целочисленного деления. У меня два вопроса: Это число можно вводить как String а потом передлывать по частям в int ??? И как тогда с этими числами делать деление ???
...
Рейтинг: 0 / 0
03.04.2012, 10:59:46
    #37735850
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
UInt64.MaxValue
BigInteger
BigDecimal
...
Рейтинг: 0 / 0
03.04.2012, 12:32:22
    #37736110
Mash6a
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
UInt64.MaxValue
а никто случаино на эту задачку не натыкался ?)
...
Рейтинг: 0 / 0
03.04.2012, 17:39:22
    #37736967
Mash6a
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
UInt64.MaxValue
Код: 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.
	private static void Plus(String n1, String n2, int lgn1, int lgn2) {
		// TODO Auto-generated method stub
		char ch1[],ch2[];
		int lgnM, i, chn1[],chn2[],chF[];
		ch1 = new char [lgn1];
		ch2 = new char [lgn2];
		chn1 = new int [lgn1];
		chn2 = new int [lgn1];
		for (i=0;i < lgn1; i++){
			ch1[i] = n1.charAt(i);
			chn1[i] = Character.digit(ch1[i], 10);
		//	System.out.println(chn1[i]);
		} 
		
		System.out.println();
		
		for (i=0;i < lgn2; i++){
			ch2[i] = n2.charAt(i);
			chn2[i] = Character.digit(ch2[i], 10);
		}
		if (lgn1>lgn2){lgnM = lgn1;} else {lgnM = lgn2;}
	chF = new int [lgnM];	
	System.out.println("      Hell      ");
	for (i=lgnM-1; i >= 0 ; i--){
		   	
			chF[i] = chn1[i]+chn2[i];
			System.out.print(chF[i]);
			System.out.print(" ");
		}
	System.out.println("      Hell      ");
	for (i=lgnM-1;i>-1;i--){
		if (chF[i]>9){ chF[i]=chF[i]-10;
			chF[i+1]=chF[i+1]+1;		} else{chF[i]=chF[i];}
		System.out.print("  " + chF[i]);
	}
		System.out.println();
	}



где косЯк помогите ???
надо сложить два числа
Код: 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.
58.
59.
60.
61.
62.
63.
64.
65.
66.
package Olol;

import java.io.*;
import java.lang.*;

public class Olol {
	
	

	public static void main(String [] args){
	
		String chis1;
		String chis2;
		int lg1,lg2;
		chis1="34556754345643455434"; 
		chis2="34556754345643455434";
		lg1 = chis1.length();
		lg2 = chis2.length();
		Plus(chis1,chis2,lg1,lg2);
		System.out.println();
		}

	private static void Plus(String n1, String n2, int lgn1, int lgn2) {
		// TODO Auto-generated method stub
		char ch1[],ch2[];
		int lgnM, i, chn1[],chn2[],chF[];
		ch1 = new char [lgn1];
		ch2 = new char [lgn2];
		chn1 = new int [lgn1];
		chn2 = new int [lgn1];
		for (i=0;i < lgn1; i++){
			ch1[i] = n1.charAt(i);
			chn1[i] = Character.digit(ch1[i], 10);
		//	System.out.println(chn1[i]);
		} 
		
		System.out.println();
		
		for (i=0;i < lgn2; i++){
			ch2[i] = n2.charAt(i);
			chn2[i] = Character.digit(ch2[i], 10);
		}
		if (lgn1>lgn2){lgnM = lgn1;} else {lgnM = lgn2;}
	chF = new int [lgnM];	
	System.out.println("      Hell      ");
	for (i=lgnM-1; i >= 0 ; i--){
		   	
			chF[i] = chn1[i]+chn2[i];
			System.out.print(chF[i]);
			System.out.print(" ");
		}
	System.out.println("      Hell      ");
	for (i=lgnM-1;i>-1;i--){
		if (chF[i]>9){ chF[i]=chF[i]-10;
			chF[i+1]=chF[i+1]+1;		} else{chF[i]=chF[i];}
		System.out.print("  " + chF[i]);
	}
		System.out.println();
	}




	

}
...
Рейтинг: 0 / 0
03.04.2012, 17:56:44
    #37736990
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
UInt64.MaxValue
Потрудитесь отформатировать и дать внятные имена переменным.
На вид вроде, ОК. Не работает только перенос в первой цифре. Т.е. если chn1[0] + chn2[0] > 9, то куда перенос запишем?
Что-то не работает? Пошаговой отладкой умеете пользоваться?
...
Рейтинг: 0 / 0
03.04.2012, 18:14:38
    #37737019
Mash6a
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
UInt64.MaxValue
мужики вы такие капризные... Если вам имена ничего не эают эт не значит что они не корректные. Как сделать длинное умножение подскажите...
...
Рейтинг: 0 / 0
03.04.2012, 18:38:33
    #37737074
grasoff.net
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
UInt64.MaxValue
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / UInt64.MaxValue / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]