대수 를 더 하면 대수 를 곱 한다
2389 단어 알고리즘/데이터 구조
대수 더하기 의 핵심 사상 은 대응 하 는 위치의 수 를 더 한 후에 계산 결과 의 진 위 를 한 번 더 해서 결 과 를 얻 은 후에 결과% 10 은 현재 위치의 수 를 얻 었 고 결과 / 10 은 진 위 를 얻어 반복 되 었 다.
public static String add(String s1,String s2) {
StringBuffer res = new StringBuffer();
s1 = new StringBuffer(s1).reverse().toString();
s2 = new StringBuffer(s2).reverse().toString();
int len1 = s1.length();
int len2 = s2.length();
int max = len1>len2?len1:len2;
// 0 ,
if(len1 < len2) {
for (int i = len1; i < len2; i++) {
s1+="0";
}
}else {
for (int i = len2; i < len1; i++) {
s2+="0";
}
}
int c = 0;//
for (int i = 0; i < max; i++) {
// 0
int temp = (s1.charAt(i) - '0') + (s2.charAt(i) - '0') + c;
int cur = temp%10;//
res.append(cur);//
c = temp/10;//
}
if(c>0) {// 0,
res.append(c);
}
return res.reverse().toString();//
}
[JAVA ]- , ,
public String multify(String s1, String s2) {
int len1 = s1.length();
int len2 = s2.length();
int[] res = new int[len1 + len2];//
for (int i = 0; i < len1; i++) {
int n1 = s1.charAt(i) - '0';// 0 0-9
for (int j = 0; j < len2; j++) {
int n2 = s2.charAt(j) - '0';
res[i + j] += n1 * n2;// ,
}
}
// , 53*34, res=[15,29,12]
for (int i = res.length - 1; i > 0; i--) {
res[i - 1] += res[i] / 10;// /10 , i-1
res[i] = res[i] % 10;// %10
}
StringBuffer sb = new StringBuffer();
for (int i = 0; i < res.length-1; i++) {
sb.append(res[i]);//
}
return sb.toString();
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
대수 를 더 하면 대수 를 곱 한다대수 를 더 하 다 대수 더하기 의 핵심 사상 은 대응 하 는 위치의 수 를 더 한 후에 계산 결과 의 진 위 를 한 번 더 해서 결 과 를 얻 은 후에 결과% 10 은 현재 위치의 수 를 얻 었 고 결과 / 10 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.