Mình là newbie thôi. Mình code trên visual studio 2015 bài này. Khá là dài bạn có thể tham khảo.
Mã:
#include<stdio.h>#include<conio.h>#include<iostream>char *tong2so(char a[], char b[]){ char *p = new char[21]; int x[20]; int y[20]; int z[22]; for (int i = 0; i < 20; i++) // Scan chuyển đổi chuỗi vào 2 mảng kiểu int để tính toán. Ví dụ kiểu char là kí tự 1 thì đổi thành số 1 { if (a[i] == 48) x[i] = 0; if (a[i] == 49) x[i] = 1; if (a[i] == 50) x[i] = 2; if (a[i] == 51) x[i] = 3; if (a[i] == 52) x[i] = 4; if (a[i] == 53) x[i] = 5; if (a[i] == 54) x[i] = 6; if (a[i] == 55) x[i] = 7; if (a[i] == 56) x[i] = 8; if (a[i] == 57) x[i] = 9; if (b[i] == 48) y[i] = 0; if (b[i] == 49) y[i] = 1; if (b[i] == 50) y[i] = 2; if (b[i] == 51) y[i] = 3; if (b[i] == 52) y[i] = 4; if (b[i] == 53) y[i] = 5; if (b[i] == 54) y[i] = 6; if (b[i] == 55) y[i] = 7; if (b[i] == 56) y[i] = 8; if (b[i] == 57) y[i] = 9; } int check = 0; // Kiểu tra điều kiện cộng có nhớ for (int i = 19; i >= 0; i--) { if (check == 0) // Trường hợp không nhớ { if ((x[i] + y[i]) >= 0 && ((x[i] + y[i]) <= 9)) // Tổng hai số lớn hơn bàng 0 và nhỏ hơn bàng 9 { if (i == 0) z[0] = 0; // trường hợp i==0 phải xét riêng bởi vì nếu x[0]+y[0] > 9 thì thành số có 21 chữ số z[i+1] = x[i] + y[i]; check = 0; continue; } if ((x[i] + y[i]) > 9) { if (i == 0) { z[1] = (a[i] + b[i]) % 10; z[0] = ((x[i] + y[i]) / 10) % 10; continue; } else { z[i + 1] = (x[i] + y[i]) % 10; check = 1; continue; } } } else { if ((x[i] + y[i] + 1) >= 0 && ((x[i] + y[i] + 1) <= 9)) { if (i == 0) z[0] = 0; z[i+1] = x[i] + y[i] + 1; check = 0; continue; } if ((x[i] + y[i] + 1) > 9) { if(i==0) { z[1] = (x[i] + y[i]+1) % 10; z[0] = ((x[i] + y[i]+1) / 10) % 10; continue; } else { z[i + 1] = (x[i] + y[i] + 1) % 10; check = 1; continue; } } } } int i; if (z[0] == 0) // số cộng được có 20 chữ số { for (i = 1; i < 21; i++) // chuyển đổi từ mảng int thành chuỗi char để return { if (z[i] == 0) p[i - 1] = 48; if (z[i] == 1) p[i - 1] = 49; if (z[i] == 2) p[i - 1] = 50; if (z[i] == 3) p[i - 1] = 51; if (z[i] == 4) p[i - 1] = 52; if (z[i] == 5) p[i - 1] = 53; if (z[i] == 6) p[i - 1] = 54; if (z[i] == 7) p[i - 1] = 55; if (z[i] == 8) p[i - 1] = 56; if (z[i] == 9) p[i - 1] = 57; } p[i-1] = 0; // phần tử để kết thúc sâu } else // trường hợp có 21 chữ số { for (i = 0; i < 21; i++) { if (z[i] == 0) p[i] = 48; if (z[i] == 1) p[i] = 49; if (z[i] == 2) p[i] = 50; if (z[i] == 3) p[i] = 51; if (z[i] == 4) p[i] = 52; if (z[i] == 5) p[i] = 53; if (z[i] == 6) p[i] = 54; if (z[i] == 7) p[i] = 55; if (z[i] == 8) p[i] = 56; if (z[i] == 9) p[i] = 57; } p[i] = 0;// phần tử kết thúc sâu } return p;}void main(){ char a[] = "95132546251235874562"; char b[] = "25132645621664116266"; std:: cout <<tong2so(a, b); _getch();}
Mỗi liệu pháp tại Queen Spa là một hành trình chiều chuộng bản thân, giúp bạn tìm lại sức sống và năng lượng mới. Không gian của Queen Spa được thiết kế sao cho tối ưu hóa sự thoải mái và thư giãn...
Sống Đẹp và Khỏe Mạnh với Queen...