SABB

New Member
ارسال ها
704
لایک ها
25
امتیاز
0
[center:e189397b07]23
کد
#include <iostream>

using namespace std;

int num(int n,int k)
{
    int output=0,m=k;
    while(n/m!=0)
    {
			  output+=n/m;
			  m*=k;
    }
    return output;
}

int taj(int n,int a[],int p[])
{
	int i=2,j=0;
	while(n>1)
	{
			if(n%i==0)
			{
					p[j]=0;
					a[j]=i;
					while(n%i==0)
					{
							   p[j]++;
							   n/=i;
					}
					j++;
			}
			i++;
	}
	return j;
}

int zero(int x,int y)
{
    int a[100],p[100],l,i,d[100],min=-1;
    l=taj(y,a,p);
    for(i=0;i<l;i++)
	  d[i]=0;
    for(i=0;i<l;i++)
	  d[i]+=num(x,a[i]);
    for(i=0;i<l;i++)
    {
	  d[i]/=p[i];
	  if((d[i]<min)||(min==-1))
		min=d[i];
    }
    return min;
}

int main()
{
    int Q,i;
    cout<<"Q= ";
    cin>>Q;
    for(i=5;zero(i,10)<Q;i++) {}
    if(zero(i,10)==Q)
	  cout<<i;
    else
	  cout<<"No Solution!";
    cin.get();
    cin.get();
    return 0;
}
[/center:e189397b07]
 

rezashiri

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

min heap چیه؟

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

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


int main()
{
    int a,b,c;
    start:
    scanf("%d",&a);
    
    for(b=1;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){
    printf("%d",b);
    goto end;}}
    
    
    if(c!=a){
    printf("No solution");
    goto end;}
    
    end:
	   getch();
    return 0;
}
 

SABB

New Member
ارسال ها
704
لایک ها
25
امتیاز
0
rezashiri گفت
سلام.

min heap چیه؟

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

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


int main()
{
    int a,b,c;
    start:
    scanf("%d",&a);
    
    for(b=1;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){
    printf("%d",b);
    goto end;}}
    
    
    if(c!=a){
    printf("No solution");
    goto end;}
    
    end:
	   getch();
    return 0;
}
مگه مشکل داره؟
 

rezashiri

Well-Known Member
ارسال ها
1,458
لایک ها
325
امتیاز
83
SABB گفت
rezashiri گفت
سلام.

min heap چیه؟

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

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


int main()
{
    int a,b,c;
    start:
    scanf("%d",&a);
    
    for(b=1;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){
    printf("%d",b);
    goto end;}}
    
    
    if(c!=a){
    printf("No solution");
    goto end;}
    
    end:
	   getch();
    return 0;
}
مگه مشکل داره؟
اگه این سوال همون سوال 154 (sgu) هست ، آره.

راستی فکر کنم کامپایلر sgu مشکل پیدا کرده چون همه رو Waiting زده.(البته این برنامه رو قبلا تست کردم.)
 

rezashiri

Well-Known Member
ارسال ها
1,458
لایک ها
325
امتیاز
83
[center:2248bf4272]



اگر
برابر (مجموع ارقام n + (n ، باشد از ورودی دو عدد m,n را دریافت کرده که (m>n && m,n<10000) و تمام اعداد بین m,n را بیابید که
آن ها مختص نباشد.

یعنی مثلا
مختص نیست چون برابر با
می باشد.[/center:2248bf4272]​
 

radicall

New Member
ارسال ها
9
لایک ها
2
امتیاز
0
eee???
shoma mage dore nistin??
mowafagh bashin
ishalla tala1 mishin emsal
 

rezashiri

Well-Known Member
ارسال ها
1,458
لایک ها
325
امتیاز
83
[center:a39353d7b4]
[/center:a39353d7b4]
چرا کسی حل نمی کنه ؟!؟!


کد من:

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

int gamragham(int x)    
{
    int a=0,b;
    
    start:
    if(x>=10){
		b=x%10;
		a+=b;
		x=x/10;
		goto start;}
		
    if(x<10){
    a+=x;
    }
    return a;
}
//-------------------------
int d(int x)
{
    int a=x+gamragham(x) ;
    return a;
}
//-------------------------
int main()
{
    int a=1,b,c,m,n;
    
    printf("\aplease input n=\t");    scanf("%d",&n);
    printf("\aplease input m=\t");    scanf("%d",&m);
    
    for(a=n;a<m;a++)
    for(b=a+1;b<10000;b++)
    if(d(a)==d(b))
    printf("\nd(%d)=d(%d)\n",a,b);
    
    end:
    getch();
    return 0;
}
 

rezashiri

Well-Known Member
ارسال ها
1,458
لایک ها
325
امتیاز
83
[center:48d8b4cee2]
[/center:48d8b4cee2]این چند تا چون راحتن با هم می ذارم:


سوال الف:چند عدد از مجموعه {A={1,2,3,...,100000 دقیقا یک رقم 5 دارند؟

سوال ب:کلیه اعداد زوج چهار رقمی با ارقام متمایز را روی کاغذ نوشته ایم ، مجموع این اعداد را بیابید.

سوال ج:عددی را مقلوب کامل می گوییم که با مقلوب خود برابر باشد ، چند عدد مقلوب کامل کمتر از 1000000 وجود دارد؟

سوال د:به ازای چند عدد چهار رقمی مانند
مجموع دو عدد
و
عددی فرد است؟
 

Olympiad

New Member
ارسال ها
1,268
لایک ها
134
امتیاز
0
سوال الف :
کد
#include <stdio.h>
#include <conio.h>
int num5(int a)
 {
   int sum=0;
   while(a>0)
    {
	  if(a%10==5)
	   sum++;
	  a=a/10;
    }		    
   return sum;  
 }
 int main()
  {
    int count=0;	  
    for(int i=1;i<100000;i++)
	if(num5(i)==1)
	 count++;
    printf("%d",count);  
   getch();
   return 0;
  }
 

Olympiad

New Member
ارسال ها
1,268
لایک ها
134
امتیاز
0
[center:87ca07756b]ب
برنامه رو به بد ترين راهي كه ميشد نوشتم!!!
کد
#include <stdio.h>
#include <conio.h>
int d(int a)
 {
   int m,n,k,t;
   m=a%10;
   n=(a/10)%10;
   k=(a/100)%10;
   t=(a/1000)%10;
   if(m!=n&&m!=k&&m!=t&&n!=k&&n!=t&&k!=t)
    return true; 
   return false;
 }
 int main()
  {
   long int sum=0;	   
   for(long int i=1000;i<10000;i+=2)
    if(d(i)==true)
	sum+=i;
   printf("%d",sum);
   getch();
   return 0;
 }
[/center:87ca07756b]
 

Olympiad

New Member
ارسال ها
1,268
لایک ها
134
امتیاز
0
[center:7474b6188a]in snipt
د
کد
#include <stdio.h>
#include <conio.h>
bool d(int a)
{
   int m,n;
   m=a%10;
   n=(a/100)%10;
    if((m+n)%2==1)
	return true;
    return false;
} 
  int main()
   {
	int sum=0;
	for(int i=1000;i<10000;i++)
	 if(d(i)==true)
	  sum++;
	printf("%d",sum);
	getch();
	return 0;
   }


[/center:7474b6188a]
 

rezashiri

Well-Known Member
ارسال ها
1,458
لایک ها
325
امتیاز
83
Olympiad گفت
[center:825a0ac272]ب
برنامه رو به بد ترين راهي كه ميشد نوشتم!!!
کد
#include <stdio.h>
#include <conio.h>
int d(int a)
{
   int m,n,k,t;
   m=a%10;
   n=(a/10)%10;
   k=(a/100)%10;
   t=(a/1000)%10;
   if(m!=n&&m!=k&&m!=t&&n!=k&&n!=t&&k!=t)
    return true; 
   return false;
}
int main()
  {
   long int sum=0;	   
   for(long int i=1000;i<10000;i+=2)
    if(d(i)==true)
	sum+=i;
   printf("%d",sum);
   getch();
   return 0;
}
[/center:825a0ac272]

منم راه بهتر از این بلد نبودم!(چون احتمالا باید از آرایه برای ذخیره ارقام استفاده کرد)

ولی یه چیز جالب:

این دو تا کد جواباشون با هم فرق داره:

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

int motemaies(int x)    
{
    int a=0,b,sum=0,n,c;
    n=x;
    
		a=x%10;
		x=x/10;
		b=x%10;
		x=x/10;
		c=x%10;
		x=x/10;
		
		if(a!=b && a!=c && a!=x && b!=c && b!=x && c!=x)
		return 1; 
}
//--------------------------		

int main()
{
    int a,b,sum=0;
    
    for(a=1000;a<10000;a++){
    if( (a%2)==0 && motemaies(a)==1){
	   printf("adad = %d\n",a);
    sum+=a;}}
    
    
    printf("\amagmoe hame = %d\n",sum);
    
    
    getch();
    return 0;
}
-------------------------------------

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

int motemaies(int x)    
{
    int a=0,b,sum=0,n,c;
    n=x;
    
		a=x%10;
		x=x/10;
		b=x%10;
		x=x/10;
		c=x%10;
		x=x/10;
		
		if(a!=b && a!=c && a!=x && b!=c && b!=x && c!=x)
		return 1; 
}
//--------------------------		

int main()
{
    int a,b,sum=0;
    
    for(a=1000;a<10000;a++){
    if( (a%2)==0 && motemaies(a)==1){
    sum+=a;}}
    
    
    printf("magmoe hame = %d\n",sum);
    
    
    getch();
    return 0;
}
چرا فرق داره؟؟
 

rezashiri

Well-Known Member
ارسال ها
1,458
لایک ها
325
امتیاز
83
Olympiad گفت
[center:0b96be04cd]in snipt
د
کد
#include <stdio.h>
#include <conio.h>
bool d(int a)
{
   int m,n;
   m=a%10;
   n=(a/100)%10;
    if((m+n)%2==1)
	return true;
    return false;
} 
  int main()
   {
	int sum=0;
	for(int i=1000;i<10000;i++)
	 if(d(i)==true)
	  sum++;
	printf("%d",sum);
	getch();
	return 0;
   }


[/center:0b96be04cd]
چرا تابع تعریف کردی؟

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

int main()
{
    int a,b=0;
    
    for(a=1000;a<10000;a++)
    if((a/100+a%100)%2==1)
    b++;
    
    printf("tedad in adad ha barabar %d mibashad",b);
    getch();
    return 0;
}
 

Olympiad

New Member
ارسال ها
1,268
لایک ها
134
امتیاز
0
بايد اونجا تعريف كني كه اگه اون شرط برقرار نباشه چي رو به تابع بر گردونه.....حالا نميدونم چرا تو اولي درسته!!!!!!
کد
#include <stdio.h>
#include <conio.h>

int motemaies(int x)   
{
    int a=0,b,sum=0,n,c;
    n=x;
   
		a=x%10;
		x=x/10;
		b=x%10;
		x=x/10;
		c=x%10;
		x=x/10;
		
		if(a!=b && a!=c && a!=x && b!=c && b!=x && c!=x)
		 return 1;
==================================================
		return 0; 
/////////////////////////////////////////////////////////////////////////////////
		
}
//--------------------------		

int main()
{
    int a,b,sum=0;
   
    for(a=1000;a<10000;a++){
    if((a%2)==0 && motemaies(a)==1){
	sum+=a;}}
    printf("magmoe hame = %d\n",sum);
   
   
    getch();
    return 0;
}
 

Olympiad

New Member
ارسال ها
1,268
لایک ها
134
امتیاز
0
rezashiri گفت
Olympiad گفت
[center:f43bbf557a]in snipt
د
کد
#include <stdio.h>
#include <conio.h>
bool d(int a)
{
   int m,n;
   m=a%10;
   n=(a/100)%10;
    if((m+n)%2==1)
	return true;
    return false;
} 
  int main()
   {
	int sum=0;
	for(int i=1000;i<10000;i++)
	 if(d(i)==true)
	  sum++;
	printf("%d",sum);
	getch();
	return 0;
   }


[/center:f43bbf557a]
چرا تابع تعریف کردی؟

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

int main()
{
    int a,b=0;
    
    for(a=1000;a<10000;a++)
    if((a/100+a%100)%2==1)
    b++;
    
    printf("tedad in adad ha barabar %d mibashad",b);
    getch();
    return 0;
}
گفتم دور هم باشيم!!!!!!!!!!!!!!!!
شما كد (ج) رو نوشتيد؟؟؟
 

rezashiri

Well-Known Member
ارسال ها
1,458
لایک ها
325
امتیاز
83
Olympiad گفت
rezashiri گفت
Olympiad گفت
[center:f3103ea43b]in snipt
د
کد
#include <stdio.h>
#include <conio.h>
bool d(int a)
{
   int m,n;
   m=a%10;
   n=(a/100)%10;
    if((m+n)%2==1)
	return true;
    return false;
} 
  int main()
   {
	int sum=0;
	for(int i=1000;i<10000;i++)
	 if(d(i)==true)
	  sum++;
	printf("%d",sum);
	getch();
	return 0;
   }


[/center:f3103ea43b]
چرا تابع تعریف کردی؟

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

int main()
{
    int a,b=0;
    
    for(a=1000;a<10000;a++)
    if((a/100+a%100)%2==1)
    b++;
    
    printf("tedad in adad ha barabar %d mibashad",b);
    getch();
    return 0;
}
گفتم دور هم باشيم!!!!!!!!!!!!!!!!
شما كد (ج) رو نوشتيد؟؟؟
یه کد هست که قبلا نوشتم ولی خیلی طولانیه(برای سوالات آقای گوهرشادی نوشته بودم)!

ولی با راه حل ترکیبیاتیش خیلی راحته.
 

rezashiri

Well-Known Member
ارسال ها
1,458
لایک ها
325
امتیاز
83
[center:d7b86c5e6a]
[/center:d7b86c5e6a]
قسمت ج)(راه حل ترکیبیاتی)

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

int main()
{
    int a,b,c,sum=0;
    for(a=1;a<6;a++){
    if(a%2==0)
    sum+=9*pow(10,((a/2)-1));
    
    if(a%2==1)
    sum+=(9*(pow(10,((a-1)/2))));}
    
    printf("\a%d",sum);
    
    getch();
    return 0;
}
 

rezashiri

Well-Known Member
ارسال ها
1,458
لایک ها
325
امتیاز
83
[center:1adb001102]
[/center:1adb001102]
قسمت ج) (راه حل غیر ترکیبیاتی)
کد
#include <stdio.h>
#include <conio.h>
int main()
{
    int a,b,c,d,tedad=9;
    for(a=10;a<100;a++)
    if(a%10==a/10)
    tedad++;
    //-----------------
    for(a=100;a<1000;a++)
    if(a%10==a/100)
    tedad++;
    //-----------------
    for(a=1000;a<10000;a++)
    if(a%10==a/1000 && ((a/10)%10)==((a/100)%10))
    tedad++;
    //-----------------
    for(a=10000;a<100000;a++)
    if((a/100)-(a%1000)==(99*(a%10)-99*((a/100)%10)) || (a/100)-(a%1000)==0-(99*(a%10)-99*((a/10)%10))) 
	tedad++;

printf("%d",tedad);
   
    getch();
    return 0;
}
 

Olympiad

New Member
ارسال ها
1,268
لایک ها
134
امتیاز
0
سوال بعدي رو بذاريد....(سخت نباشه!!!!!!!!!!!!!!!!)
 
بالا