شما! فاطمه جان صورت سوال رو بخوان نه توضیح برای ...
ایشون گفتن عدد 50 رقمی! یعنی 50 رقم رو باهم جمع کنیم و... .
دیدی کی سوتی داد؟! راستی، اون رو داخل پرانتز نوشته که بعضی ها سوتی ندن با longint بنویسن! وگرنه کلیتش که یکیه و خروجی و ... فرق نداره.
شما! فاطمه جان صورت سوال رو بخوان نه توضیح برای ...
ایشون گفتن عدد 50 رقمی! یعنی 50 رقم رو باهم جمع کنیم و... .
دیدی کی سوتی داد؟! راستی، اون رو داخل پرانتز نوشته که بعضی ها سوتی ندن با longint بنویسن! وگرنه کلیتش که یکیه و خروجی و ... فرق نداره.
ما یه پروژه تو ترم 1 کاردانی استادمون بهمون داد که دو عدد 100 رقمی رو در هم ضرب کنه ، اون موقع خیلی واسم سخت بود و درضمن گفته بود با آرایه بنویسین
من خیلی رو اون فکر کردم تا جواب داد ، اینه که حالا هر کس حرف عدد بزرگ رو میزنه من یاد آرایه می افتم
حالا این بنده خدا که خودش گفته با آرایه
بی خیال ...![]()
کاردانی!!!
بابا بیخیال! پارسال به ما 100 فاکتوریل میدادن! میگفتن هرجور میشه بنویسین!(البته اجباری نبود، هیچی اجباری نبود!)
جدی فکر کنم طرف بیخیال اینجا شده.
وقت نداشتم بهینه کنم سریع الگوریتم رو اوردم تو سی شاید تو بتونی بهترش کنی
اینم سورس تست شده:
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <stdlib.h>
void main()
{
unsigned char LenA , LenB ,Ez;
char Counter,PosDef,PosRes=0;
char Dig1,Dig2,SumDig,Over=0;
char *a = new char[50];
char *b = new char[50];
char *tempA = new char[50];
char *tempB = new char[50];
char *Result = new char[60];
char *DigTemp = new char[1] ;
memset(DigTemp ,0,50);
memset(tempA ,0,50);
memset(tempB ,0,50);
memset(Result ,0,60);
printf("Enter Number1(Maximum lent = 50) : ");
scanf ("%50s",a);
printf("Enter Number2(Maximum lent = 50) : ");
scanf ("%50s",b);
LenA = strlen(a);
LenB = strlen(b);
if(LenA > LenB){
Ez = LenA - LenB;
PosDef= LenA - Ez;
for(Counter = LenA;Counter >= 0;Counter--){
tempA[Counter] = a[Counter];
if(PosDef >= 0){
tempB[Counter] = b[PosDef];
PosDef--;}
else
tempB[Counter] = '0';
}
}
else{
Ez = LenB - LenA;
PosDef= LenB - Ez;
for(Counter = LenB;Counter >= 0;Counter--){
tempB[Counter] = b[Counter];
if(PosDef >= 0){
tempA[Counter] = a[PosDef];
PosDef--;}
else
tempA[Counter] = '0';
}
}
for(Counter = strlen(tempA) - 1;Counter >= 0;Counter--){
DigTemp[0] = tempA[Counter];
Dig1 = atoi(DigTemp);
DigTemp[0] = tempB[Counter];
Dig2 = atoi(DigTemp);
SumDig = Dig2 + Dig1 + Over;
if(SumDig > 9){
SumDig = SumDig - 10;
Over = 1;
}else
Over = 0;
itoa(SumDig,DigTemp,10);
Result[PosRes]= DigTemp[0];
PosRes++;
}
if(Over)
Result[PosRes] = '1';
strrev(Result);
printf("Result = %s",Result);
getch();
}
باور کن فهمیدم!!
نمیشه تو تگ کد بزاری؟ تو قوانین(اعلان ها) هم اومده که اینکارو کنیم
اتفاقاً اون برنامه رو هم تو همون ترم نوشتیم(صدفاکتوریل)
[quote=akiller;2617065]وقت نداشتم بهینه کنم سریع الگوریتم رو اوردم تو سی شاید تو بتونی بهترش کنی
اینم سورس تست شده:
جریان چیه؟؟؟(با اجازه من گذاشتمش تو تگ کد،اون جوری اصلاً خونده نمیشد)کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
Last edited by فاطـمه; 07-07-2008 at 10:00.
[QUOTE=فاطـمه;2619212]اتفاقاً اون برنامه رو هم تو همون ترم نوشتیم(صدفاکتوریل)
سلام دوست عزیز. اگه میخواستیم از روش dynamic memory allocation برای تعریف آرایه ها استفاده کنیم و از توابع کتابخانهای نیز استفاده نکنیم چه تغییراتی باید بدهیم؟
هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)