Thursday, 09.19.2024
Дэлхийн хөгжил дэвшил над дээр
Үндсэн цэс
Нэвтрэх
Цаг агаар
Хандалт

Spin palace casino COSTA BINGO FREE COUNTER Europalace casino Online Casino
Main » Files » My files

Том тооны дөрвөн үйлдэл тус тусад нь салгасан хэлбэр. (click here)
02.17.2011, 5:24 PM
                                                                         Big Number Addition
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
#define MAX 1000
void reverse(char *from, char *to ){
int len=strlen(from);
int l;
for(l=0;l<len;l++)
to[l]=from[len-l-1];
to[len]='\0';
}
void call_sum(char *first, char *sec, char *result){
char F[MAX], S[MAX], Res[MAX];
int f,s,sum,extra,now;
f=strlen(first);
s=strlen(sec);
reverse(first,F);
reverse(sec,S);
for(now=0,extra=0;(now<f && now<s);now++){
sum=(F[now]-'0') + (S[now]-'0') + extra;
Res[now]=sum%10 +'0';
extra= sum/10;
}
for(;now<f;now++){
sum=F[now] + extra-'0';
Res[now]=sum%10 +'0';
extra=sum/10;
}
for(;now<s;now++){
sum=F[now] + extra-'0';
Res[now]=sum%10 +'0';
extra=sum/10;
}
if(extra!=0) Res[now++]=extra+'0';
Res[now]='\0';
if(strlen(Res)==0) strcpy(Res,"0");
reverse(Res,result);}
int main(){
char fir[MAX],sec[MAX],res[MAX];
while(scanf("%s%s",&fir,&sec)==2){
call_sum(fir,sec,res);
int len=strlen(res);
for(int i=0;i<len;i++) printf("%c",res[i]);
printf("\n");
}
return 0;
}

                                                                                Big Number Subtraction
/***** Big Number Subtraction *******************/
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
#define MAX 1000
/*******************************************************************/
void reverse(char *from, char *to ){
int len=strlen(from);
int l;
for(l=0;l<len;l++)
to[l]=from[len-l-1];
to[len]='\0';
}
int call_minus(char *large, char *small, char *result){
char L[MAX], S[MAX];
int l,s,now,hold,diff;
l=strlen(large);
s=strlen(small);
bool sign = 0;
if(l<s){
strcpy(result,large);
strcpy(large,small);
strcpy(small,result);
now=l; l=s; s=now;
sign = 1;
}//return 0;
if(l==s){
if(strcmp(large, small)<0){
strcpy(result,large);
strcpy(large,small);
strcpy(small,result);
now=l; l=s; s=now;
sign =1;
}//return 0;
}
reverse(large,L);
reverse(small,S);
for(;s<l;s++)
S[s]='0';
S[s]='\0';
for(now=0,hold=0;now<l;now++){
diff=L[now]-(S[now]+hold);
if(diff<0){
hold=1;
result[now]=10+diff+'0';
}
else{
result[now]=diff+'0';
hold=0;
}

}
for(now=l-1;now>0;now--){
if(result[now]!='0')
break;
}
result[now+1]='\0';
reverse(result,L);
strcpy(result,L);
//return 1;
return sign;
}
int main(){
char fir[MAX],sec[MAX],res[MAX];
while(scanf("%s%s",&fir,&sec)==2){
if(call_minus(fir,sec,res)==1)
printf("-");
int len = strlen(res);
for(int i=0;i<len;i++)
printf("%c",res[i]);
printf("\n");
}
return 0;
}
Big Number Multiplication
/****** Big Number Multiplication *********************/
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
#define MAX 1000
/******************************************************************/
void reverse(char *from, char *to ){
int len=strlen(from);
int l;
for(l=0;l<len;l++)
to[l]=from[len-l-1];
to[len]='\0';
}
/******************************************************************/
void call_mult(char *first,char *sec,char *result){
char F[MAX],S[MAX],temp[MAX];
int f_len,s_len,f,s,r,t_len,hold,res;
f_len=strlen(first);
s_len=strlen(sec);
reverse(first,F);
reverse(sec,S);
t_len=f_len+s_len;
r=-1;
APPENDIX B COMMON CODES/ROUTINES FOR PROGRAMMING
215
for(f=0;f<=t_len;f++)
temp[f]='0';
temp[f]='\0';
for(s=0;s<s_len;s++){
hold=0;
for(f=0;f<f_len;f++){
res=(F[f]-'0')*(S[s]-'0') + hold+(temp[f+s]-'0');
temp[f+s]=res%10+'0';
hold=res/10;
if(f+s>r) r=f+s;
}
while(hold!=0){
res=hold+temp[f+s]-'0';
hold=res/10;
temp[f+s]=res%10+'0';
if(r<f+s) r=f+s;
f++;
}
}
for(;r>0 && temp[r]=='0';r--);
temp[r+1]='\0';
reverse(temp,result);
}
/***************************************************************/
int main(){
char fir[MAX],sec[MAX],res[MAX];
while(scanf("%s%s",&fir,&sec)==2){
call_mult(fir,sec,res);
int len=strlen(res);
for(int i=0;i<len;i++) printf("%c",res[i]);
printf("\n");
}
return 0;
}
Big Number Division and Remainder
//***** Big Number division *********************//
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
#define MAX 1000
/*******************************************************************/
int call_div(char *number,long div,char *result){
int len=strlen(number);
int now;
long extra;
char Res[MAX];
for(now=0,extra=0;now<len;now++){
extra=extra*10 + (number[now]-'0');
APPENDIX B COMMON CODES/ROUTINES FOR PROGRAMMING
216
Res[now]=extra / div +'0';
extra%=div;
}
Res[now]='\0';
for(now=0;Res[now]=='0';now++);
strcpy(result, &Res[now]);
if(strlen(result)==0)
strcpy(result, "0");
return extra;
}
/*******************************************************************/
int main(){
char fir[MAX],res[MAX];
long sec,remainder;
while(scanf("%s%ld",&fir,&sec)==2){
if(sec==0) printf("Divide by 0 error\n");
else{
remainder=call_div(fir,sec,res);
int len=strlen(res);
for(int i=0;i<len;i++) printf("%c",res[i]);
printf("\t%ld",remainder);
printf("\n");
}
}
return 0;
}
Category: My files | Added by: Bemby
Views: 953 | Downloads: 0 | Comments: 4 | Rating: 0.0/0
Total comments: 4
0  
4 Даваа   (04.16.2011 9:40 AM) [Entry]
Ene arga yahv bj bolhol yum bn

0  
3 Uka_09   (02.17.2011 5:47 PM) [Entry]
WoW үнэхээр хэцүү байсан юм байна аа сайн харж ойлгох нь л чухал ойлгож авна даа амжилт хүсье. :D

0  
2 Гантулга   (02.17.2011 5:28 PM) [Entry]
Үүнийг сурахын тулд эхлээд хуулж бичээд байх хэрэгтэй. Өөр аргаар сурна гэвэл хицүү л байх даа. wacko Би ч сайн мэдэхгүй. Эндээс ашиглаад байхаар жаахан төсөө бууна тэгэхээр нь өөрийн гэсэн том тооны алгоритмтой болоорой. happy

0  
1 Гантулга   (02.17.2011 5:26 PM) [Entry]
ART OF PROGRAMMING CONTEST Номноос biggrin

Only registered users can add comments.
[ Registration | Login ]
Цаг бол алт
Хурал:
Calculator
Хайлт хийх
Дархан хот 2024 он