Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<iostream>
- #include<cmath>
- using namespace std;
- int strlen(char str1[]){
- int i = 0;
- while(str1[i] != '\0')
- i++;
- return i;
- }
- void strTOnum(char str[],int num[]){
- int len = strlen(str);
- int index = len - 1;
- int i = 0;
- while(index>=0){
- num[i] = str[index] - '0';
- i++;
- index--;
- }
- }
- char str1[500];
- char str2[500];
- int main(){
- while(cin >> str1 && cin >> str2){
- if(str1[0] == '0' || str2[0] == '0'){
- cout << '0' <<'\n';
- continue;
- }
- int num1[500] = {0};
- int num2[500] = {0};
- int mul[1000] = {0};
- strTOnum(str1,num1);
- strTOnum(str2,num2);
- int index = 0;
- int carry = 0;
- int len1 = strlen(str1);
- int len2 = strlen(str2);
- if(len1>=len2){
- for(int i=0;i<len2;i++){
- for(int j =0,k=i;j<len1;j++,k++){
- int m = (num2[i] * num1[j])+carry;
- carry = 0;
- mul[k] += m % 10;
- carry = m / 10;
- index = k;
- }
- }
- for(int i=0;i<=index;i++){
- if(mul[i]>9){
- int temp = mul[i];
- mul[i] = temp%10;
- mul[i+1] += temp/10;
- if(i+1==index+1){
- index++;
- break;
- }
- }
- }
- for(int i=index;i>=0;i--){
- cout << mul[i];
- }
- cout << '\n';
- }
- else{
- for(int i=0;i<len1;i++){
- for(int j =0,k=i;j<len2;j++,k++){
- int m = (num1[i] * num2[j])+carry;
- carry = 0;
- mul[k] += m % 10;
- carry = m / 10;
- index = k;
- }
- }
- for(int i=0;i<=index;i++){
- if(mul[i]>9){
- int temp = mul[i];
- mul[i] = temp%10;
- mul[i+1] += temp/10;
- if(i+1==index+1){
- index++;
- break;
- }
- }
- }
- for(int i=index;i>=0;i--){
- cout << mul[i];
- }
- cout << '\n';
- }
- }
- return 0;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment