Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <string.h>
- int main()
- {
- char n1[] = "123";
- char n2[] = "56";
- int len1 = strlen(n1);
- int len2 = strlen(n2);
- int n, i;
- if(len1 > len2) n = len1;
- else n = len2;
- char num1[n], num2[n];
- for(i = 0; i < n - len1; i++) {
- num1[i] = '0';
- }
- for(int j = 0; j < n; i++, j++) {
- num1[i] = n1[j];
- }
- for(i = 0; i < n - len2; i++) {
- num2[i] = '0';
- }
- //i = 1
- for(int j = 0; i < n; i++, j++) {
- num2[i] = n2[j];
- }
- char pro[2 * n + 1];
- int j, k;
- for(i = 0; i < 2 * n + 1; i++) {
- pro[i] = '0';
- }
- pro[2 * n] = '\0';
- // num1 - i && num2 - j && pro - k
- int p, carry = 0, counter = -1;
- for(j = n - 1; j >= 0; j--) {
- carry = 0;
- counter++;
- k = 2 * n - 1 - counter;
- for(i = n - 1; i >= 0; i--) {
- p = pro[k] - '0' + (num1[i] - '0') * (num2[j] - '0') + carry;
- carry = p / 10;
- pro[k] = (p % 10) + '0';
- k--;
- }
- pro[k] = carry + '0';
- }
- //printf("ans = %s\n", pro);
- for(i = 0; i < 2 * n; i++) {
- if(pro[i] != '0') {
- for(j = i; j < 2 * n; j++) {
- printf("%c", pro[j]);
- }
- break;
- }
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment