Goharshady

New Member
ارسال ها
2,239
لایک ها
166
امتیاز
0
ویندوز بهتر می فهمه که داره یا نداره. شایدم 1394 دارید. یا همون WiFi
 

Goharshady

New Member
ارسال ها
2,239
لایک ها
166
امتیاز
0

Olympiad

New Member
ارسال ها
1,268
لایک ها
134
امتیاز
0

Goharshady

New Member
ارسال ها
2,239
لایک ها
166
امتیاز
0
[center:b677617801]
[/center:b677617801]
سوال سیزدهم : الگوریتم و برنامه ای بنویسید که مجموع ارقام عدد !250 را محاسبه کند.​
 

SABB

New Member
ارسال ها
704
لایک ها
25
امتیاز
0
[center:1c8152412a]12+1

9 نمیشه، می شه؟​
[/center:1c8152412a]
اگه درسته (0%)، کدو بذارم...
 

Goharshady

New Member
ارسال ها
2,239
لایک ها
166
امتیاز
0
[center:644cf2c6c6]13[/center:644cf2c6c6]
جواب صحیح 942917576 است ولی کدتونو بذارین.
 

SABB

New Member
ارسال ها
704
لایک ها
25
امتیاز
0
حالا که نگاه می کنم می بینم به هم خیلی شبیهن

فکر کنم یه جا یه اشتباه خیلی کوچیک کردم
 

Goharshady

New Member
ارسال ها
2,239
لایک ها
166
امتیاز
0
ببخشید که انحراف ایجاد می کنم!!!
یه چیزیه که مدت نسبتا زیادیه که فکر منو مشغول کرده.
این امضای شما خیلی آشناست ، قبلا جایی ندیده امش؟
 

SABB

New Member
ارسال ها
704
لایک ها
25
امتیاز
0
Goharshady گفت
ببخشید که انحراف ایجاد می کنم!!!
یه چیزیه که مدت نسبتا زیادیه که فکر منو مشغول کرده.
این امضای شما خیلی آشناست ، قبلا جایی ندیده امش؟
 

Goharshady

New Member
ارسال ها
2,239
لایک ها
166
امتیاز
0
SABB گفت
Goharshady گفت
ببخشید که انحراف ایجاد می کنم!!!
یه چیزیه که مدت نسبتا زیادیه که فکر منو مشغول کرده.
این امضای شما خیلی آشناست ، قبلا جایی ندیده امش؟
بسیار جواب قانع کننده و دندان شکنی بود. یاد اثباتهایی که این دوستان برای توهماتشون در مورد خرافه ی جاذبه می آورند افتادم
 

Olympiad

New Member
ارسال ها
1,268
لایک ها
134
امتیاز
0
[center:517b3bca93]
[hr:517b3bca93][/center:517b3bca93][center:517b3bca93]
[/center:517b3bca93][font=tahoma,arial,helvetica,sans-serif]
برنامه اي بنويسيد كه ورودي آن شامل يك رشته از اعداد رومي و خروجي آن معادل دهدهي آن باشد.

[/font]
[hr:517b3bca93][font=tahoma,arial,helvetica,sans-serif]
[/font]



[hr:517b3bca93]
[font=tahoma,arial,helvetica,sans-serif]هر نماد كه در سمت راست نماد ديگري باشد ،چناچه ارزش آن نماد كمتر يا مساوي آن نماد باشد،ارزش آن نماد را زياد مي كند[/font]
III = ۱+۱+۱ = ۳
XI = ۱۰+۱ = ۱۱VII = ۵+۱+۱ = ۷ [hr:517b3bca93]
[font=tahoma,arial,helvetica,sans-serif]هر نمادي كه در سمت چپ نماد ديگر ي نوشته شده باشد ، چنانچه مقدارش از آن كمتر باشد ، ارزش آن نماد را كم مي كند
[/font]
IV = ۵-۱ = ۴
IX = ۱۰-۱ = ۹CD = ۵۰۰-۱۰۰ = ۴۰۰

[hr:517b3bca93]
[font=tahoma,arial,helvetica,sans-serif]هر نمادي بين دو نماد بزرگتر از خود نوشته شود ، ابتدا با نماد سمت راستش تركيب مي شود ، يعني از ارزش آن مي كاهد و سپس طبق قانون اول ، تفاضل بر ارزش نماد ديگر اضافه مي شود
[/font]
XIV = (۵-۱)+۱۰ = ۱۴
MCM = (۱۰۰۰-۱۰۰)+۱۰۰۰ = ۱۹۰۰
 

Goharshady

New Member
ارسال ها
2,239
لایک ها
166
امتیاز
0
Goharshady گفت
[center:c1f01be4ce]
[/center:c1f01be4ce]
سوال سیزدهم : الگوریتم و برنامه ای بنویسید که مجموع ارقام عدد !250 را محاسبه کند.​
از همون الگوریتم اعداد بزرگ استفاده کرده ام. آرایه ای از اعداد درست می کنیم.بعد در هر مرحله که بخواهیم کل عدد را در i ضرب کنیم(
) ، ابتدا همه ی ارقام را در i ضرب می کنیم.بعد اگر رقمی از 9 بیشتر شد(یعنی نیاز به ده بر یک)، آن را به رقم بعد انتقال می دهیم تا زمانی که از 10 کوچکتر شود. در نهایت با استفاده از تابع print عدد
را چاپ کرده و ضمنا جمع ارقامش را نیز چاپ می کنیم.ضمنا آرایه ی اصلی x است و تابع times ، این آرایه را در یک عدد دلخواه ضرب می کند.
برنامه را با این لینک از snipt من بگیرید:
http://snipt.net/goharshady/250
 

erfankh

New Member
ارسال ها
202
لایک ها
89
امتیاز
0
14
کد
#include<iostream>
#include<fstream>
#include<conio.h>
#include<string.h>
using namespace std;
int f(char a)
{
    char b[8]="XLCDIMV";
    int b1[7];
    b1[0]=10;
    b1[1]=50;
    b1[2]=100;
    b1[3]=500;
    b1[4]=1;
    b1[5]=1000;
    b1[6]=5;
    for(int i=0;i<7;i++)
    {
		  if(b[i]==a)
				   return b1[i];
    }
}	
int main()
{
    ofstream fout("output.txt");
    ifstream fin("input.txt");
    char ad[30];
    int t[30],al[30];
    fin>>ad;
    for(int i=0;i<strlen(ad);i++)
		  t[i]=f(ad[i]);
    al[strlen(ad)-1]=1;
    for(int i=strlen(ad)-2;i>-1;i--)
    {
		  if(t[i]<t[i+1])
					  al[i]=-1;
		  else
					  al[i]=1;
    }
    int ans=0;
    for(int i=0;i<strlen(ad);i++)
		  ans=ans+al[i]*t[i];
    fout<<ans<<endl;
    getch();
    return 0;
}
 

Goharshady

New Member
ارسال ها
2,239
لایک ها
166
امتیاز
0
[center:86202b243e]14[/center:86202b243e]
کد
User:Erfankh
Pr: RomanNumeral
Testing....
compiling...
compile error! Why did you use getch?
Removing getch....
Penalty:Score-=5
compiling...
compiled!
Test results:
Test 1: Pass
Test 2: Pass
Test 3: Runtime error!
!Test 4:Runtime error
Test 5:Runtime error!
Total score=2/5*100-5= 35
این نتایج تست برنامه ی شما بود. برنامه تون با اعداد بزرگ مشکل داره.
 

erfankh

New Member
ارسال ها
202
لایک ها
89
امتیاز
0
کد
 [CENTER][B]14[/B][/CENTER]
[TABLE][TR]	 [TD]
[B]:كد[/B][/TD]	[/TR]	 [TR]	 [TD]User:Erfankh 
Pr: RomanNumeral 
Testing.... 
compiling... 
compile error! Why did you use getch? 
Removing getch.... 
Penalty:Score-=5 
compiling... 
compiled! 
Test results: 
Test 1: Pass 
Test 2: Pass 
Test 3: Runtime error! 
!Test 4:Runtime error 
Test 5:Runtime error! 
Total score=2/5*100-5= 35[/TD]	[/TR][/TABLE]


این نتایج تست برنامه ی شما بود. برنامه تون با اعداد بزرگ مشکل داره.
با اعداد بزرگ مشکل داره ؟
3 تا داده آخر رو میشه بدین من برنامه مو چک کنم بیبنم مشکلش چیه
باتشکر از شما
 

Goharshady

New Member
ارسال ها
2,239
لایک ها
166
امتیاز
0
[center:1a656199ca]14[/center:1a656199ca]
مشکلش اینه که بیشتر از 30 رقم قبول نمی کنه. می تونید طوری بنویسید که تنها محدودیت شما حد int باشد.
ضمنا داده هایی که برنامه ی اتوماتیک من به برنامه ها می دهد متغیر هستند و من نمی دونم دقیقا چی بوده. یعنی دیدم داده های دفعه ی قبلو ولی یادم نمی آید. مهم اینه که بیشتر از 30 رقم بود.
اما در مورد getch دقت داشته باشید که در هیچ مسابقه ای نباید getch بگذارید چرا که جلوی محاسبه ی درست زمان کار را می گیرد.
 

SABB

New Member
ارسال ها
704
لایک ها
25
امتیاز
0
[center:241b041d46]14
کد
#include<iostream.h>
#include<fstream.h>
int Dec(char ch)
{
    char Roman[9]="XLCDIMV0";
    int Decimal[8]={10,50,100,500,1,1000,5,0};
    for(int i=0;i<7;i++)
	  if(ch==Roman[i])
		return Decimal[i];
}
int main()
{
    ifstream read("input.txt");
    ofstream write("output.txt");
    char s[1000];
    long int Decimal=0,i;
    read>>s;
    for(i=strlen(s)-1;i>=0;i-=2)
    {
						 if(i==0)
						 {
							if(Dec(s[i])>=Dec(s[i+1]))
							   Decimal+=Dec(s[i]);
							else
							   Decimal-=Dec(s[i]);
						 }
						 else
						 {
						    if(Dec(s[i])>Dec(s[i-1]))
							  Decimal+=Dec(s[i])-Dec(s[i-1]);
						    else
							  Decimal+=Dec(s[i])+Dec(s[i-1]);
						 }
    }
    write<<Decimal;
    return 1374;
}
[/center:241b041d46]
 

SABB

New Member
ارسال ها
704
لایک ها
25
امتیاز
0
[center:c65420e1fa]5×3
(مساله های الگوریتمی-67)
دونفر بازی زیر را روی توده ای از چوب کبریت ها انجام می دهند:
بازیکن ها به ترتیب تعدادی از چوب کبریت ها را بر می دارند. هر بازیکن در نوبت خود اگر فقط یک چوب کبریت مانده باشد آن را برمی دارد و اگر بیشتر از یکی باشد، می تواند حداکثر به اندازه نصف چوب کبریت های باقی مانده بردارد. کسی که آخرین چوب کبریت را بردارد بازنده است.
برنامه ای بنویسید که n را گرفته، مشخص کند چه کسی استراتژی برد دارد، سپس به جای کسی که استراتژی برد دارد با کاربر بازی کرده و برنده شود.​
[/center:c65420e1fa]
 

SABB

New Member
ارسال ها
704
لایک ها
25
امتیاز
0
چرا کسی جواب نمی ده؟
لطفا این رو زودتر حل کنید، یه سوال کاربردی قشنگ می خواهم بذارم.
 
بالا