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();}
Dưới ánh nắng mặt trời đang lên, những đống pallet nhựa An Giang trải dài mênh mông như những bức tranh tự nhiên đầy sắc màu. Mỗi chiếc pallet nhựa không chỉ là một vật dụng thông thường mà còn là...
Pallet nhựa An Giang giao hàng...