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();}
Tuy nhiên, việc thi công và bảo dưỡng đường bê tông nhựa đòi hỏi sự chuyên nghiệp và kỹ thuật cao từ các nhà thầu và kỹ sư. Sự linh hoạt và độ bền cao của đường bê tông nhựa cũng giúp giảm thiểu chi...
Xây Dựng Đẳng Cấp: Cùng Đại Thanh,...