rezashiri

Well-Known Member
ارسال ها
1,458
لایک ها
325
امتیاز
83
Olympiad گفت
rezashiri گفت
Olympiad گفت
میشه بگی اون جایی که نوشتی&den و.... یعنی چی ..؟؟؟؟ چیکار میکنه!!؟؟؟؟
یعنی باز گشت با ارجاع.

خود متغیر رو تو برنامه اصلی تغییر می ده.
میشه یکم فارسی تر حرف بزنید!!!!!!!!!!؟؟؟؟
کلا چیز زیاد خاصی نیست.

اگه اون کتابی که قبلا از دانشگاه پیام نور گذاشته بودم رو داری برو صفحه 158 به بعد رو بخون.
 

Olympiad

New Member
ارسال ها
1,268
لایک ها
134
امتیاز
0
rezashiri گفت
من آخر نفهمیدم مشکل این کد برای سوال 154 چیه؟!؟


میشه یه نفر بگه !

کد
#include <stdio.h>
#include <conio.h>
#include <math.h>


int main()
{
    unsigned long int a,b,c;
    start:
    scanf("%d",&a);
    
    for(b=0;b<100000000;b++){   
    c=b/5+b/25+b/125+b/625+b/pow(5,5)+b/pow(5,6)+b/pow(5,7)+b/pow(5,8)+b/pow(5,9)+b/pow(5,10)+b/pow(5,11)+b/pow(5,12);
    if(c>a) goto end;
    if(c==a){
    printf("%d",b);
    goto end2;}}
    
    end:
    if(c!=a)
    printf("No solution");
    
    end2:
    getch();
    return 0;
}
من مطمئن نيستم اما فكر مي كنم كد شما براي اعداد بزرگ اشتباه كار ميكنه و ...... براي همين wrong answer ميخوريد....فكر كنم بايد الگوريتمتون رو عوض كنيد....
 

rezashiri

Well-Known Member
ارسال ها
1,458
لایک ها
325
امتیاز
83
Olympiad گفت
rezashiri گفت
من آخر نفهمیدم مشکل این کد برای سوال 154 چیه؟!؟


میشه یه نفر بگه !

کد
#include <stdio.h>
#include <conio.h>
#include <math.h>


int main()
{
    unsigned long int a,b,c;
    start:
    scanf("%d",&a);
    
    for(b=0;b<100000000;b++){   
    c=b/5+b/25+b/125+b/625+b/pow(5,5)+b/pow(5,6)+b/pow(5,7)+b/pow(5,8)+b/pow(5,9)+b/pow(5,10)+b/pow(5,11)+b/pow(5,12);
    if(c>a) goto end;
    if(c==a){
    printf("%d",b);
    goto end2;}}
    
    end:
    if(c!=a)
    printf("No solution");
    
    end2:
    getch();
    return 0;
}
من مطمئن نيستم اما فكر مي كنم كد شما براي اعداد بزرگ اشتباه كار ميكنه و ...... براي همين wrong answer ميخوريد....فكر كنم بايد الگوريتمتون رو عوض كنيد....
آخه تو تست 3 ، wrong میشه.
یعنی تست 3 ، بزرگتر از 100000 هست؟شایدم باشه؟!
 
ارسال ها
143
لایک ها
79
امتیاز
0
rezashiri گفت
من آخر نفهمیدم مشکل این کد برای سوال 154 چیه؟!؟


میشه یه نفر بگه !

کد
#include <stdio.h>
#include <conio.h>
#include <math.h>


int main()
{
    unsigned long int a,b,c;
    start:
    scanf("%d",&a);
    
    for(b=0;b<100000000;b++){   
    c=b/5+b/25+b/125+b/625+b/pow(5,5)+b/pow(5,6)+b/pow(5,7)+b/pow(5,8)+b/pow(5,9)+b/pow(5,10)+b/pow(5,11)+b/pow(5,12);
    if(c>a) goto end;
    if(c==a){
    printf("%d",b);
    goto end2;}}
    
    end:
    if(c!=a)
    printf("No solution");
    
    end2:
    getch();
    return 0;
}

بسیار کد زیبایی نوشتی ها ! :D
ایده حل این سوال Binary_search هستش . فکر کنم گفتید قبلا توی همین تاپیک این سوال مطرح شده .
 

Olympiad

New Member
ارسال ها
1,268
لایک ها
134
امتیاز
0
navidjalalmanesh گفت
rezashiri گفت
من آخر نفهمیدم مشکل این کد برای سوال 154 چیه؟!؟


میشه یه نفر بگه !

کد
#include <stdio.h>
#include <conio.h>
#include <math.h>


int main()
{
    unsigned long int a,b,c;
    start:
    scanf("%d",&a);
    
    for(b=0;b<100000000;b++){   
    c=b/5+b/25+b/125+b/625+b/pow(5,5)+b/pow(5,6)+b/pow(5,7)+b/pow(5,8)+b/pow(5,9)+b/pow(5,10)+b/pow(5,11)+b/pow(5,12);
    if(c>a) goto end;
    if(c==a){
    printf("%d",b);
    goto end2;}}
    
    end:
    if(c!=a)
    printf("No solution");
    
    end2:
    getch();
    return 0;
}

بسیار کد زیبایی نوشتی ها ! :D
ایده حل این سوال Binary_search هستش . فکر کنم گفتید قبلا توی همین تاپیک این سوال مطرح شده .
درست فكر مي كنيد!!!
 

rezashiri

Well-Known Member
ارسال ها
1,458
لایک ها
325
امتیاز
83
Olympiad گفت
navidjalalmanesh گفت
rezashiri گفت
من آخر نفهمیدم مشکل این کد برای سوال 154 چیه؟!؟


میشه یه نفر بگه !

کد
#include <stdio.h>
#include <conio.h>
#include <math.h>


int main()
{
    unsigned long int a,b,c;
    start:
    scanf("%d",&a);
    
    for(b=0;b<100000000;b++){   
    c=b/5+b/25+b/125+b/625+b/pow(5,5)+b/pow(5,6)+b/pow(5,7)+b/pow(5,8)+b/pow(5,9)+b/pow(5,10)+b/pow(5,11)+b/pow(5,12);
    if(c>a) goto end;
    if(c==a){
    printf("%d",b);
    goto end2;}}
    
    end:
    if(c!=a)
    printf("No solution");
    
    end2:
    getch();
    return 0;
}

بسیار کد زیبایی نوشتی ها ! :D
ایده حل این سوال Binary_search هستش . فکر کنم گفتید قبلا توی همین تاپیک این سوال مطرح شده .
درست فكر مي كنيد!!!
قبلا حل نشده.
قبلا کدش نوشته شده ولی acc نشده.
 

rezashiri

Well-Known Member
ارسال ها
1,458
لایک ها
325
امتیاز
83
navidjalalmanesh گفت
rezashiri گفت
من آخر نفهمیدم مشکل این کد برای سوال 154 چیه؟!؟


میشه یه نفر بگه !

کد
#include <stdio.h>
#include <conio.h>
#include <math.h>


int main()
{
    unsigned long int a,b,c;
    start:
    scanf("%d",&a);
    
    for(b=0;b<100000000;b++){   
    c=b/5+b/25+b/125+b/625+b/pow(5,5)+b/pow(5,6)+b/pow(5,7)+b/pow(5,8)+b/pow(5,9)+b/pow(5,10)+b/pow(5,11)+b/pow(5,12);
    if(c>a) goto end;
    if(c==a){
    printf("%d",b);
    goto end2;}}
    
    end:
    if(c!=a)
    printf("No solution");
    
    end2:
    getch();
    return 0;
}

بسیار کد زیبایی نوشتی ها ! :D
ایده حل این سوال Binary_search هستش . فکر کنم گفتید قبلا توی همین تاپیک این سوال مطرح شده .
منظورتون چیه؟!؟!؟

میشه بگید مشکلش چیه؟
 
ارسال ها
143
لایک ها
79
امتیاز
0
Olympiad گفت
قبلا یه قانون تو این تاپیک تصویب شد!!!! اونم اینکه همراه کد ها الگوریتم هم نوشته بشه .... فکر کنم قانون خوبی بود!!!

به SABB : میشه بگی اون جایی که نوشتی &den و.... یعنی چی ..؟؟؟؟ چیکار میکنه!!؟؟؟؟


چون SABB جواب کامل به سوال نداد من جواب می دم :D


توی C++ وقتی یه تابع می نویسید و به اون تابع متغیر پاس می دید , C++ می یاد یه کپی از اون متغیره رو به تابع پاس می ده و به خود اون متغیره کاری نداره , که این کار وقتی که تابع تون زیادی استفاده بشه توی زمان تاثیر می ذاره !

منتها وقتی توی تعریف تابع علامت & بذارید دیگه این کپی صورت نمی گیره و در نتیجه کلی خوب می شه دیگه !

یه مثال هم بزنم که کاملا روشن بشه :

کد1 :
کد
#include <iostream>
using namespace std;

void f(int x) {
	x = x * x;
}


int main() {
	int a;
	cin >> a;
	f(a);
	cout << a << endl;
	return 0;
}
کد 1 خود a بدون تغییر جاپ می شه.

کد2 :
کد
#include <iostream>
using namespace std;

void f(int &x) {
	x = x * x;
}


int main() {
	int a;
	cin >> a;
	f(a);
	cout << a << endl;
	return 0;
}
توی کد2 a به توان 2 چاپ می شه
 
ارسال ها
143
لایک ها
79
امتیاز
0
rezashiri گفت
navidjalalmanesh گفت
rezashiri گفت
من آخر نفهمیدم مشکل این کد برای سوال 154 چیه؟!؟


میشه یه نفر بگه !

کد
#include <stdio.h>
#include <conio.h>
#include <math.h>


int main()
{
    unsigned long int a,b,c;
    start:
    scanf("%d",&a);
    
    for(b=0;b<100000000;b++){   
    c=b/5+b/25+b/125+b/625+b/pow(5,5)+b/pow(5,6)+b/pow(5,7)+b/pow(5,8)+b/pow(5,9)+b/pow(5,10)+b/pow(5,11)+b/pow(5,12);
    if(c>a) goto end;
    if(c==a){
    printf("%d",b);
    goto end2;}}
    
    end:
    if(c!=a)
    printf("No solution");
    
    end2:
    getch();
    return 0;
}

بسیار کد زیبایی نوشتی ها ! :D
ایده حل این سوال Binary_search هستش . فکر کنم گفتید قبلا توی همین تاپیک این سوال مطرح شده .
منظورتون چیه؟!؟!؟

میشه بگید مشکلش چیه؟

منظورم اینه که برای فهمیدن تعداد صفر های اون عدده می تونستید یه تابع بسیار شیک و تمیز بنویسید به جای اینکه دستی عمل کنید .
به دل نگیر , منظور خاصی نداشتم :D
 

rezashiri

Well-Known Member
ارسال ها
1,458
لایک ها
325
امتیاز
83
navidjalalmanesh گفت
rezashiri گفت
navidjalalmanesh گفت
rezashiri گفت
من آخر نفهمیدم مشکل این کد برای سوال 154 چیه؟!؟


میشه یه نفر بگه !

کد
#include <stdio.h>
#include <conio.h>
#include <math.h>


int main()
{
    unsigned long int a,b,c;
    start:
    scanf("%d",&a);
    
    for(b=0;b<100000000;b++){   
    c=b/5+b/25+b/125+b/625+b/pow(5,5)+b/pow(5,6)+b/pow(5,7)+b/pow(5,8)+b/pow(5,9)+b/pow(5,10)+b/pow(5,11)+b/pow(5,12);
    if(c>a) goto end;
    if(c==a){
    printf("%d",b);
    goto end2;}}
    
    end:
    if(c!=a)
    printf("No solution");
    
    end2:
    getch();
    return 0;
}

بسیار کد زیبایی نوشتی ها ! :D
ایده حل این سوال Binary_search هستش . فکر کنم گفتید قبلا توی همین تاپیک این سوال مطرح شده .
منظورتون چیه؟!؟!؟

میشه بگید مشکلش چیه؟

منظورم اینه که برای فهمیدن تعداد صفر های اون عدده می تونستید یه تابع بسیار شیک و تمیز بنویسید به جای اینکه دستی عمل کنید .
به دل نگیر , منظور خاصی نداشتم :D
منظورم از این که مشکلش چیه اینه که چرا acc نمی شه؟!
 
ارسال ها
143
لایک ها
79
امتیاز
0
اگر حتی Wrong نخوره تایم می شه خوب ! گفتم : Binary_search بزن !

این کد خودمه :

کد
#include <iostream>
using namespace std;
int q;

int t5(int x) {
	int c = 0;
	while (x > 0)
	{
		c += x/5;
		x /= 5;
	}
	return c;
}

int bsearch(int start, int end) {
	if (end == start)
		return start;
	if (t5((start + end)/2) < q)
		return bsearch(((start + end)/2) + 1, end);
	return bsearch(start, (start + end)/2);
}

int main() {
	cin >> q;
	if (q == 0)
		cout << 1 << endl;
	else {
		int U = bsearch(1,5 * q);
		if (t5(U) != q)
			cout << "No solution" << endl;
		else cout << U << endl;
	}
	return 0;
}
 

Olympiad

New Member
ارسال ها
1,268
لایک ها
134
امتیاز
0
اينم كد من كه بازم wrong ميشه!!!!!!!!

کد
#include <iostream>
#include <conio.h>
using namespace std;
long int t5(long int k)
   {
	int count=0;
	while(k%5==0)
	  {
	    count++;
	    k/=5;
	  }
	 return count;
    }
   long int te(long int k)
	{
	  int s=0;
	  for(int i=5;i<=k;i+=5)
	   s+=t5(i);
	  return s;
	}
int main()
  {
	long int n,s=0,i;
	cin>>n;
	if(n==0)
	  {
		  cout<<"0";
		  return 0;
	  }
	 else if(n>0)
	   {
		 for(int j=0;j<1000000;j+=5)
		   {
			   if(te(j)>n)
				{
				 cout<<"no solution";
			   
				 return 0;
				}
			    if(te(j)==n)
				  {
					cout<<j;
		 
			    return 0;
				  }   
			    else
				continue;
		   }  
	   }
	  return 0;
  
  }
 

rezashiri

Well-Known Member
ارسال ها
1,458
لایک ها
325
امتیاز
83
این چی؟

کد
#include <stdio.h>
#include <conio.h>
#include <math.h>


int main()
{
    unsigned long a,b,c;
    start:
    scanf("%d",&a);
    
    for(b=0;b<1000000000;b+=5){   
    c=b/5+b/25+b/125+b/625+b/(3125)+b/(15625)+b/(78125)+b/(390625)+b/(1953125)+b/(9765625)+b/(48828125)+b/(244140625);
    if(c>a) goto end;
    if(c==a){
    printf("%d",b);
    goto end2;}}
    
    end:
    if(c!=a)
    printf("No solution");
    
    end2:
    getch();
    return 0;
}
 
ارسال ها
143
لایک ها
79
امتیاز
0
Olympiad کد تو برای 12345 تایم می شه , دیگه نگران Wrong خوردن نباش :D

rezashiri برای ورودی 0 کدت 0 چاپ می کنه در حالیکه باید چاپ کنه 1 .

Olympiad کد تو هم برای 0 , 0 چاپ می کنه
 

rezashiri

Well-Known Member
ارسال ها
1,458
لایک ها
325
امتیاز
83
navidjalalmanesh گفت
Olympiad کد تو برای 12345 تایم می شه , دیگه نگران Wrong خوردن نباش :D

rezashiri برای ورودی 0 کدت 0 چاپ می کنه در حالیکه باید چاپ کنه 1 .

Olympiad کد تو هم برای 0 , 0 چاپ می کنه
پس تست 3 همون 0 بود.

حالا تایم شدم.
 

rezashiri

Well-Known Member
ارسال ها
1,458
لایک ها
325
امتیاز
83
یه سوال خیلی سخت
سوال 184



لطفا یه نفر سوال 126 رو ترجمه کنه.
 

Olympiad

New Member
ارسال ها
1,268
لایک ها
134
امتیاز
0
navidjalalmanesh گفت
Olympiad کد تو برای 12345 تایم می شه , دیگه نگران Wrong خوردن نباش :D

rezashiri برای ورودی 0 کدت 0 چاپ می کنه در حالیکه باید چاپ کنه 1 .

Olympiad کد تو هم برای 0 , 0 چاپ می کنه
اصولش اينه كه 0 چاپ كنه ديگه ... مگه نه!!!؟؟؟؟؟؟؟؟؟؟ 0!=1
 

Olympiad

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


کد
 #include <iostream>
 #include <conio.h>
 using namespace std;
long int min(long int a,long int b,long int c)
   {
	int g[3],min;
	g[0]=a;
	g[1]=b;
	g[2]=c;
	min=g[0];
	for(int i=1;i<3;i++)
	  if(min>g[i])
	   min=g[i];
	return min;
   }
	 
   int main()
	{
	  long int p,m,c,k,r,v;
	  cin>>p>>m>>c;
	  cin>>k>>r>>v;
	  if(p<k||m<r||c<v)
		 cout<<"0";
	  else
		cout<<min((p/k),(m/r),(c/v));
		getch();
	 return 0;
	}
 

Olympiad

New Member
ارسال ها
1,268
لایک ها
134
امتیاز
0
126 :
معادل رياضيش‌ :

ابتدا دو عدد a,b را وارد مي كنيم ... بعد در هر مرحله زوج (a,b) را با زوج (a-b,2b)
(عدد a از b بزرگتره ) جابجا مي كنيم..... و به خروجي بايد تعداد مراحلي كه بعد از طي چند مرحله دو عدد برابر به وجود مي آد رو بده....اگر چنين كاري ممكن نبود 1- چاپ شود...
 
بالا