ΠΠ°Π»ΡΠΊΡΠ»ΡΡΠΎΡ Π±ΠΎΠ»ΡΡΠΎΠΉ Β«ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠΉΒ» Π°ΡΠΈΡΠΌΠ΅ΡΠΈΠΊΠΈ
ΠΡΠΎΠΏΠΈΡΠ°Π½Ρ Π²ΡΠ΅ ΡΠ°ΡΡΠ½ΡΠ΅ ΡΠ»ΡΡΠ°ΠΈ Π΄Π΅Π»Π΅Π½ΠΈΡ. ΠΡΠ»ΠΈ ΠΏΠ΅ΡΠ²ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ ΠΌΠ΅Π½ΡΡΠ΅ Π²ΡΠΎΡΠΎΠ³ΠΎ — ΡΠΎ ΡΡΠ°Π·Ρ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π΄Π΅Π»Π΅Π½ΠΈΡ 0, ΠΎΡΡΠ°ΡΠΎΠΊ — ΠΏΠ΅ΡΠ²ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ ΡΠ΅Π»ΠΈΠΊΠΎΠΌ. ΠΡΠ»ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π²Π²ΠΎΠ΄ΠΈΡ Π΄Π΅Π»Π΅Π½ΠΈΠ΅ 0 Π½Π° 0, Π²ΡΠ²ΠΎΠ΄ΠΈΡΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅: «ΠΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΡΡΡ. ΠΡΠ±ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ Π² ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΊΠ΅,» Ρ. Π΅. ΠΈΠ½ΡΠ΅ΡΠ²Π°Π» ΡΠΎ Π²ΡΠ΅ΠΌΠΈ Π²Π°ΡΠΈΠ°Π½ΡΠ°ΠΌΠΈ. Π ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»Π΅ ΡΠΈΡΠ»ΠΎ 2, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΎΠ½ΠΎ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ Π² Π΄Π°Π½Π½ΠΎΠΉ Π°ΡΠΈΡΠΌΠ΅ΡΠΈΠΊΠ΅. ΠΡΠ»ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π²Π²ΠΎΠ΄ΠΈΡ Π½ΠΎΠ»Ρ ΡΠΎΠ»ΡΠΊΠΎ… Π§ΠΈΡΠ°ΡΡ Π΅ΡΡ >
ΠΠ°Π»ΡΠΊΡΠ»ΡΡΠΎΡ Π±ΠΎΠ»ΡΡΠΎΠΉ Β«ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠΉΒ» Π°ΡΠΈΡΠΌΠ΅ΡΠΈΠΊΠΈ (ΡΠ΅ΡΠ΅ΡΠ°Ρ, ΠΊΡΡΡΠΎΠ²Π°Ρ, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½Π°Ρ)
Π‘Π°Π½ΠΊΡ-ΠΠ΅ΡΠ΅ΡΠ±ΡΡΠ³ΡΠΊΠΈΠΉ ΠΠΎΡΡΠ΄Π°ΡΡΡΠ²Π΅Π½Π½ΡΠΉ ΠΠΎΠ»ΠΈΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΠΉ Π£Π½ΠΈΠ²Π΅ΡΡΠΈΡΠ΅Ρ ΠΠ½ΡΡΠΈΡΡΡ ΠΏΡΠΈΠΊΠ»Π°Π΄Π½ΠΎΠΉ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΠΊΠΈ ΠΈ ΠΌΠ΅Ρ Π°Π½ΠΈΠΊΠΈ ΠΠ°ΡΠ΅Π΄ΡΠ° Π’Π΅Π»Π΅ΠΌΠ°ΡΠΈΠΊΠΈ (ΠΏΡΠΈ Π¦ΠΠΠ Π Π’Π) ΠΡΡΡΠΎΠ²Π°Ρ ΡΠ°Π±ΠΎΡΠ° ΠΏΠΎ Π΄ΠΈΡΠΊΡΠ΅ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΠΊΠ΅
«ΠΠ°Π»ΡΠΊΡΠ»ΡΡΠΎΡ Π±ΠΎΠ»ΡΡΠΎΠΉ „ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠΉ“ Π°ΡΠΈΡΠΌΠ΅ΡΠΈΠΊΠΈ»
Π Π°Π±ΠΎΡΡ Π²ΡΠΏΠΎΠ»Π½ΠΈΠ»: ΠΠΎΠ΄ΠΎΡΠΎΠ²Π° Π. Π―.
ΠΡΠΎΠ²Π΅ΡΠΈΠ»: ΠΠΎΡΡΡΠΎΠ² Π.Π.
Π‘Π°Π½ΠΊΡ-ΠΠ΅ΡΠ΅ΡΠ±ΡΡΠ³ 2013
1. ΠΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ
2. Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠ°Π±Π»ΠΈΡ ΠΌΠ°Π»ΠΎΠΉ Π°ΡΠΈΡΠΌΠ΅ΡΠΈΠΊΠΈ
2.1 Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ ΡΠ°Π±Π»ΠΈΡ ΡΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠ° ΠΏΠΎ ΡΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
2.2 Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ ΡΠ°Π±Π»ΠΈΡ ΡΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠ° ΠΏΠΎ ΡΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΡ
3. Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π°ΡΠΈΡΠΌΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ
3.1 Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ Π²ΡΡΠΈΡΠ°Π½ΠΈΡ
3.2 Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΡ
3.3 Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π΄Π΅Π»Π΅Π½ΠΈΡ
3.4 Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π‘ΠΏΠΈΡΠΎΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠΉ Π»ΠΈΡΠ΅ΡΠ°ΡΡΡΡ ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
Π‘ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠ°Π»ΡΠΊΡΠ»ΡΡΠΎΡ Π±ΠΎΠ»ΡΡΠΎΠΉ «ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠΉ» Π°ΡΠΈΡΠΌΠ΅ΡΠΈΠΊΠΈ i;+,*> (ΠΌΠΈΠ½ΠΈΠΌΡΠΌ 8 ΡΠ°Π·ΡΡΠ΄ΠΎΠ²) Π΄Π»Ρ ΡΠ΅ΡΡΡΠ΅Ρ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ (+,-,*,/) Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΌΠ°Π»ΠΎΠΉ «ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠΉ» Π°ΡΠΈΡΠΌΠ΅ΡΠΈΠΊΠΈ, Π³Π΄Π΅ Π·Π°Π΄Π°Π½ΠΎ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ «+1» ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΊΠΎΠΌΠΌΡΡΠ°ΡΠΈΠ²Π½ΠΎΡΡΠΈ (+,*), Π°ΡΡΠΎΡΠΈΠ°ΡΠΈΠ²Π½ΠΎΡΡΠΈ (+), Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²Π½ΠΎΡΡΠΈ * ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ +, Π·Π°Π΄Π°Π½Ρ Π°Π΄Π΄ΠΈΡΠΈΠ²Π½Π°Ρ Π΅Π΄ΠΈΠ½ΠΈΡΠ° «0» ΠΈ ΠΌΡΠ»ΡΡΠΈΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠ²Π½Π°Ρ Π΅Π΄ΠΈΠ½ΠΈΡΠ° «1», Ρ *0=0.
ΠΠΎ ΠΆΠ΅Π»Π°Π½ΠΈΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΏΠΎΠΈΡΠΊ ΠΠΠ Π΄Π»Ρ Π΄Π²ΡΡ ΡΠΈΡΠ΅Π».
β | Zi | +1 | |||||||||
Z9 | ; | ||||||||||
1. ΠΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ
1. ΠΠ»Π³ΠΎΡΠΈΡΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π² ΡΠ΅Π±Π΅ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΠ΅ ΡΠ°Π±Π»ΠΈΡ (Π² Π²ΠΈΠ΄Π΅ Π΄Π²ΡΠΌΠ΅ΡΠ½ΡΡ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ², ΠΏΠΎ ΡΡΡΠΎΠ³ΠΎ Π·Π°Π΄Π°Π½Π½ΠΎΠΌΡ ΠΏΡΠ°Π²ΠΈΠ»Ρ «+1») ΡΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΡΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠ° ΠΏΠΎ ΡΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠ° ΠΏΠΎ ΡΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΡ.
2. ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅ Π±ΠΈΠ½Π°ΡΠ½ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ (+, -, *, /). ΠΠ° Π²Ρ ΠΎΠ΄ Π±Π΅ΡΠ΅ΡΡΡ Π΄Π²Π° ΡΠΈΡΠ»Π° ΠΈ ΠΎΠ΄Π½Π° ΠΈΠ· Π΄Π°Π½Π½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ.
3. ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΡΠΌΠΈ ΡΠΈΡΠ»Π°ΠΌΠΈ.
2. Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠ°Π±Π»ΠΈΡ ΠΌΠ°Π»ΠΎΠΉ Π°ΡΠΈΡΠΌΠ΅ΡΠΈΠΊΠΈ
2.1 Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ ΡΠ°Π±Π»ΠΈΡ ΡΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠ° ΠΏΠΎ ΡΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
void SetPlus (int a, int b)
{
int n=0;
int temp=a;
do
{
temp=Find (temp);
n++;
}
while (temp≠0);
temp=b;
for (int i=0; i
temp=Plus[1][temp];
if (temp==0 && a≠0)
PlusP[a][b]=1;
}
Plus[a][b]=temp;
}
ΠΠ° Π²Ρ ΠΎΠ΄ ΡΡΠ½ΠΊΡΠΈΡ Π±Π΅ΡΠ΅Ρ Π΄Π²Π΅ ΡΠΈΡΡΡ. ΠΠ΅ΡΠ²Π°Ρ ΡΠΈΡΡΠ° ΡΠ°ΡΠΊΠ»Π°Π΄ΡΠ²Π°Π΅ΡΡΡ Π½Π° ΡΡΠΌΠΌΡ Π΅Π΄ΠΈΠ½ΠΈΡ, ΠΈ Π½ΡΠΆΠ½ΠΎΠ΅ ΠΈΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΡΠΈΠ±Π°Π²Π»ΡΠ΅ΡΡΡ ΠΊΠΎ Π²ΡΠΎΡΠΎΠΌΡ ΡΠΈΡΠ»Ρ ΠΏΠΎ ΠΏΡΠ°Π²ΠΈΠ»Ρ «+1». Π Π΅Π·ΡΠ»ΡΡΠ°Ρ: ΠΈΡ ΡΡΠΌΠΌΠ° Π² Π½Π°ΡΠ΅ΠΉ Π°ΡΠΈΡΠΌΠ΅ΡΠΈΠΊΠ΅, ΠΊΠΎΡΠΎΡΠ°Ρ Π²Π½ΠΎΡΠΈΡΡΡ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΡΡ ΡΡΠ΅ΠΉΠΊΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅ΠΉ ΡΠ°Π±Π»ΠΈΡΡ. ΠΠ°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΠ°Π±Π»ΠΈΡΡ ΡΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ Π΅Π³ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΈΠ΄Π΅Ρ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ.
2.2 Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ ΡΠ°Π±Π»ΠΈΡ ΡΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠ° ΠΏΠΎ ΡΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΡ
void SetMult (int a, int b)
{
int temp=0, tempB=b;
while (tempB>0)
{
temp=Summ (temp, a, 1);
tempB=Summ (tempB, 1,0);
}
Mult[a][b]=temp%10;
MultP[a][b]=(b==0)?0:temp/10;
}
ΠΠ° Π²Ρ ΠΎΠ΄ Π±Π΅ΡΠ΅ΡΡΡ Π΄Π²Π΅ ΡΠΈΡΡΡ. ΠΡΠΈ Π²ΡΡΠΈΡΠ°Π½ΠΈΠΈ ΠΈΠ· Π²ΡΠΎΡΠΎΠΉ ΡΠΈΡΡΡ Π΅Π΄ΠΈΠ½ΠΈΡΡ ΠΊ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΠΎΠΌΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ ΠΏΡΠΈΠ±Π°Π²Π»ΡΠ΅ΡΡΡ ΠΏΠ΅ΡΠ²Π°Ρ ΡΠΈΡΡΠ°, ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° Π²ΡΠΎΡΠΎΠ΅ ΡΠΈΡΠ»ΠΎ Π½Π΅ ΡΠ°Π·Π»ΠΎΠΆΠΈΡΡΡ Π½Π° ΡΡΠΌΠΌΡ Π΅Π΄ΠΈΠ½ΠΈΡ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ, Ρ. Π΅. ΠΏΠΎΠΊΠ° tempB Π½Π΅ Π±ΡΠ΄Π΅Ρ ΡΠ°Π²Π΅Π½ 0. Π’. Π΅. ΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΎ ΠΊΠ°ΠΊ ΡΡΠΌΠΌΠ° ΠΏΠ΅ΡΠ²ΠΎΠΉ ΡΠΈΡΡΡ n ΡΠ°Π·, Π³Π΄Π΅ n — ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π΅Π΄ΠΈΠ½ΠΈΡ, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΠ°Π·Π»ΠΎΠΆΠΈΠ»Π°ΡΡ Π²ΡΠΎΡΠ°Ρ ΡΠΈΡΡΠ°.
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ: ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² Π½Π°ΡΠ΅ΠΉ Π°ΡΠΈΡΠΌΠ΅ΡΠΈΠΊΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²Π½ΠΎΡΠΈΡΡΡ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΡΡ ΡΡΠ΅ΠΉΠΊΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅ΠΉ ΡΠ°Π±Π»ΠΈΡΡ. ΠΠ°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΠ°Π±Π»ΠΈΡΡ ΡΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ Π΅Π³ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΈΠ΄Π΅Ρ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ.
3. Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π°ΡΠΈΡΠΌΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ
3.1 Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ Π²ΡΡΠΈΡΠ°Π½ΠΈΡ
int Summ (int a, int b, bool p)
{
int rez=0, bp=0;
int ostA=a, ostB=b, tempA, tempB;
int i=1;
for (i; ostA>0 || ostB>0; i*=10)
{
tempA=ostA%10;
tempB=(p)?ostB%10:ObratPlus (ostB%10);
rez+=Plus[Plus[tempA][tempB]][bp]*i;
if (p==true)
bp=PlusP[tempA][tempB]+PlusP[Plus[tempA][tempA]][bp];
else
{
if (Sravn (ostB%10, tempA)||(tempA==ostB%10 && bp≠0))
{
bp=2;
}
else bp=0;
}
ostA/=10;
ostB/=10;
}
rez+=bp*i;
return rez;
ΠΠ° Π²Ρ ΠΎΠ΄ ΡΡΠ½ΠΊΡΠΈΡ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΠΌΠΎΠ΄ΡΠ»ΠΈ Π΄Π²ΡΡ ΡΠΈΡΠ΅Π», ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ p, ΠΎΡΠ²Π΅ΡΠ°ΡΡΡΡ Π·Π° ΡΠΎ, ΡΠΊΠ»Π°Π΄ΡΠ²Π°ΡΡ ΡΠΈΡΠ»Π° Π½Π°Π΄ΠΎ, ΠΈΠ»ΠΈ Π²ΡΡΠΈΡΠ°ΡΡ.
Π‘Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅: Π‘Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΏΠΎΡΠ°Π·ΡΡΠ΄Π½ΠΎ, Π½Π°ΡΠΈΠ½Π°Ρ Ρ ΠΌΠ»Π°Π΄ΡΠ΅Π³ΠΎ ΡΠ°Π·ΡΡΠ΄Π°, ΠΏΠΎ ΡΠ°Π±Π»ΠΈΡΠ΅ ΡΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ ΠΏΡΠΈΠ±Π°Π²Π»ΡΠ΅ΡΡΡ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΡΠΌΠΌΡ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π³ΠΎ ΡΠ°Π·ΡΡΠ΄Π° (ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ ΡΠ°Π²Π½ΠΎΠ΅ 0). Π‘Π°ΠΌΠΎ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π²ΡΡΠΈΡΠ»ΡΠ΅ΡΡΡ ΠΊΠ°ΠΊ ΡΡΠΌΠΌΠ° Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΉ ΡΠΈΡΠ΅Π» Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΈ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π³ΠΎ ΡΠ°Π·ΡΡΠ΄Π°.
ΠΡΡΠΈΡΠ°Π½ΠΈΠ΅: ΠΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ ΡΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π½ΠΎ ΠΊ ΡΠΈΡΡΠ΅ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΡΠΈΡΠ»Π° ΠΏΡΠΈΠ±Π°Π²Π»ΡΠ΅ΡΡΡ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π΄ΠΎ 0 ΡΠΈΡΡΡ Π²ΡΠΎΡΠΎΠ³ΠΎ ΡΠΈΡΠ»Π°. ΠΠ΅ΡΠ΅Π½ΠΎΡ ΠΏΡΠΈ ΡΡΠΎΠΌ, ΡΠ°Π²Π½ΡΠΉ «-1» (Ρ.Π΅. ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠΉ ΡΠΈΡΡΠ΅ Π² Π΄Π°Π½Π½ΠΎΠΉ Π°ΡΠΈΡΠΌΠ΅ΡΠΈΠΊΠ΅), Π±ΡΠ΄Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° ΠΈΠ· ΠΌΠ΅Π½ΡΡΠ΅ΠΉ ΡΠΈΡΡΡ Π²ΡΡΠΈΡΠ°ΡΡ Π±ΠΎΠ»ΡΡΡΡ (Π² ΠΎΡΡΠ°Π»ΡΠ½ΡΡ ΡΠ»ΡΡΠ°ΡΡ ΠΏΠ΅ΡΠ΅Π½ΠΎΡ ΡΠ°Π²Π΅Π½ 0).
3.2 Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΡ
int Umnog (int a, int b)
{
int REZ=0;
int ostB=b;
for (int j=1; ostB>0; j*=10)
{
int tempB=ostB%10;
int tempREZ=0;
int ostA=a;
int i=1;
int dopU=0;
for (i; ostA>0; i*=10)
{
int tempA=ostA%10;
int tempDop=Summ (Mult[tempA][tempB], dopU, 1);
tempREZ+=tempDop%10*i;
dopU=Summ (tempDop/10, MultP[tempA][tempB], 1);
ostA/=10;
}
tempREZ+=dopU*i;
REZ=Summ (REZ, tempREZ*j, 1);
ostB/=10;
}
return REZ;
}
ΠΠ° Π²Ρ ΠΎΠ΄ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈΠ΄Π΅Ρ Π΄Π²Π° ΡΠΈΡΠ»Π°. Π£ΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΏΠΎΡΠ°Π·ΡΡΠ΄Π½ΠΎ, ΡΡΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ ΡΠ΅ΡΠ΅Π· ΡΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° 10. ΠΠ°ΠΆΠ΄Π°Ρ ΡΠΈΡΡΠ° ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΡΠΈΡΠ»Π° ΡΠΌΠ½ΠΎΠΆΠ°Π΅ΡΡΡ Π½Π° Π²ΡΠΎΡΠΎΠ΅ ΠΏΠΎ ΡΠ°Π±Π»ΠΈΡΠ΅, ΠΊ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ ΠΏΡΠΈΠ±Π°Π²Π»ΡΠ΅ΡΡΡ ΠΏΠ΅ΡΠ΅Π½ΠΎΡ ΠΎΡ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π³ΠΎ ΡΠ°Π·ΡΡΠ΄Π°. ΠΠ΅ΡΠ΅Π½ΠΎΡ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΡΠ°Π·ΡΡΠ΄Π° ΡΠ°Π²Π΅Π½ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΡ ΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΡ Π΅Π³ΠΎ ΡΠΈΡΡ ΠΏΠ»ΡΡ ΠΏΠ΅ΡΠ΅Π½ΠΎΡ ΡΡΠΌΠΌΡ Π΅Π³ΠΎ ΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΡ ΠΈ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠ° Ρ ΠΏΡΠΎΡΠ»ΠΎΠ³ΠΎ ΡΠ°Π·ΡΡΠ΄Π°.
3.3 Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π΄Π΅Π»Π΅Π½ΠΈΡ
int Delen (int a, int b, int* mod)
{
if (Sravn (b, a))
{
*mod=a;
return 0;
}
int tempA=a;
int REZ=0;
while (!Sravn (b, tempA))
{
tempA= Summ (tempA, b, 0);
REZ= Summ (REZ, 1, 1);
}
*mod=tempA;
return REZ;
}
ΠΊΠ°Π»ΡΠΊΡΠ»ΡΡΠΎΡ Π°ΡΠΈΡΠΌΠ΅ΡΠΈΠΊΠ° ΡΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΡΠΉ ΠΠ° Π²Ρ ΠΎΠ΄Π΅ Π΄Π²Π° ΡΠΈΡΠ»Π° (ΠΏΠ΅ΡΠ²ΠΎΠ΅ — Π΄Π΅Π»ΠΈΠΌΠΎΠ΅, Π²ΡΠΎΡΠΎΠ΅ — Π΄Π΅Π»ΠΈΡΠ΅Π»Ρ), ΠΈ ΡΡΡΠ»ΠΊΠ°, ΠΏΠΎ ΠΊΠΎΡΠΎΡΠΎΠΉ Π½ΡΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΠΎΡΡΠ°ΡΠΎΠΊ ΠΎΡ Π΄Π΅Π»Π΅Π½ΠΈΡ.
ΠΡΠΎΠΏΠΈΡΠ°Π½Ρ Π²ΡΠ΅ ΡΠ°ΡΡΠ½ΡΠ΅ ΡΠ»ΡΡΠ°ΠΈ Π΄Π΅Π»Π΅Π½ΠΈΡ. ΠΡΠ»ΠΈ ΠΏΠ΅ΡΠ²ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ ΠΌΠ΅Π½ΡΡΠ΅ Π²ΡΠΎΡΠΎΠ³ΠΎ — ΡΠΎ ΡΡΠ°Π·Ρ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π΄Π΅Π»Π΅Π½ΠΈΡ 0, ΠΎΡΡΠ°ΡΠΎΠΊ — ΠΏΠ΅ΡΠ²ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ ΡΠ΅Π»ΠΈΠΊΠΎΠΌ. ΠΡΠ»ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π²Π²ΠΎΠ΄ΠΈΡ Π΄Π΅Π»Π΅Π½ΠΈΠ΅ 0 Π½Π° 0, Π²ΡΠ²ΠΎΠ΄ΠΈΡΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅: «ΠΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΡΡΡ. ΠΡΠ±ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ Π² ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΊΠ΅ [-222 222 222;222222222],» Ρ. Π΅. ΠΈΠ½ΡΠ΅ΡΠ²Π°Π» ΡΠΎ Π²ΡΠ΅ΠΌΠΈ Π²Π°ΡΠΈΠ°Π½ΡΠ°ΠΌΠΈ. Π ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»Π΅ ΡΠΈΡΠ»ΠΎ 2, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΎΠ½ΠΎ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ Π² Π΄Π°Π½Π½ΠΎΠΉ Π°ΡΠΈΡΠΌΠ΅ΡΠΈΠΊΠ΅. ΠΡΠ»ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π²Π²ΠΎΠ΄ΠΈΡ Π½ΠΎΠ»Ρ ΡΠΎΠ»ΡΠΊΠΎ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π΄Π΅Π»ΠΈΡΠ΅Π»Ρ, ΡΠΎ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅: «ΠΠ° Π½ΠΎΠ»Ρ Π΄Π΅Π»ΠΈΡΡ Π½Π΅Π»ΡΠ·Ρ! (ΠΈΡΠΊΠ». 0/0)» .
Π‘Π°ΠΌΠΎ Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ ΡΠ΅ΡΠ΅Π· Π²ΡΡΠΈΡΠ°Π½ΠΈΠ΅. ΠΠΎΠΊΠ° Π΄Π΅Π»ΠΈΠΌΠΎΠ΅ Π±ΠΎΠ»ΡΡΠ΅ Π΄Π΅Π»ΠΈΡΠ΅Π»Ρ, ΠΌΡ Π²ΡΡΠΈΡΠ°Π΅ΠΌ ΠΈΠ· ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ Π²ΡΠΎΡΠΎΠ΅ ΠΈ Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅ΠΌ Π² Π΄Π΅Π»ΠΈΠΌΠΎΠ΅. Π Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΌΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ Π΅Π΄ΠΈΠ½ΠΈΡΡ. ΠΠΎΡΠ»Π΅ Π²ΡΡ ΠΎΠ΄Π° ΠΈΠ· ΡΠΈΠΊΠ»Π°, ΠΊΠΎΠ³Π΄Π° Π΄Π΅Π»ΠΈΠΌΠΎΠ΅ ΠΌΠ΅Π½ΡΡΠ΅ Π΄Π΅Π»ΠΈΡΠ΅Π»Ρ, Π΄Π΅Π»ΠΈΠΌΠΎΠ΅ Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ Π² ΠΎΡΡΠ°ΡΠΎΠΊ. ΠΡΡΠ±ΠΎ Π³ΠΎΠ²ΠΎΡΡ, ΠΌΡ ΡΡΠΈΡΠ°Π΅ΠΌ, ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π· ΡΠΌΠΎΠΆΠ΅ΠΌ Π²ΡΡΠ΅ΡΡΡ ΠΈΠ· ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΡΠΈΡΠ»Π° Π²ΡΠΎΡΠΎΠ΅.
3.4 Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ
bool Sravn (int a, int b)
{
if (a==0) return false;
if (b==0) return true;
bool rez=false;
int ostA=a, ostB=b, temp;
int n1, n2;
for (int i=0; ostA>0||ostB>0; i++)
{
n1=0;
n2=0;
temp=ostA%10;
if (temp≠0)
do
{
temp=Find (temp);
n1++;
}
while (temp≠0);
temp=ostB%10;
if (temp≠0)
do
{
temp=Find (temp);
n2++;
}
while (temp≠0);
if (n1≠n2)
if (n2>n1)
rez=false;
else
rez=true;
ostA/=10;
ostB/=10;
}
return rez;
}
ΠΠ° Π²Ρ ΠΎΠ΄ ΡΡΠ½ΠΊΡΠΈΡ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π΄Π²Π° ΡΠΈΡΠ»Π°, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΡΠ°Π²Π½ΠΈΡΡ. Π§ΠΈΡΠ»Π° ΡΡΠ°Π²Π½ΠΈΠ²Π°ΡΡΡΡ ΠΏΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ ΡΠ°Π·ΡΡΠ΄Ρ, Π½Π°ΡΠΈΠ½Π°Ρ Ρ ΠΌΠ΅Π½ΡΡΠ΅Π³ΠΎ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π΄Π²Π΅ ΡΠΈΡΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ°Π·ΡΡΠ΄Π° ΡΠ°ΡΠΊΠ»Π°Π΄ΡΠ²Π°ΡΡΡΡ Π½Π° ΡΡΠΌΠΌΡ Π΅Π΄ΠΈΠ½ΠΈΡ, ΠΈ ΡΡΠ°Π²Π½ΠΈΠ²Π°Π΅ΡΡΡ ΠΈΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ. ΠΡΠ»ΠΈ Π±ΠΎΠ»ΡΡΠ΅ Ρ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΡΠΈΡΠ»Π° — ΠΏΠ΅ΡΠ²ΠΎΠ΅ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΠΎΠ±ΡΡΠ²Π»ΡΠ΅ΡΡΡ Π±ΠΎΠ»ΡΡΠΈΠΌ, Π΅ΡΠ»ΠΈ Ρ Π²ΡΠΎΡΠΎΠ³ΠΎ — Π²ΡΠΎΡΠΎΠ΅. ΠΡΠ»ΠΈ ΡΠ°Π²Π½ΠΎ, ΡΠΎ Π±ΠΎΠ»ΡΡΠΈΠΌ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΠΎΠ±ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎ ΡΠΈΡΠ»ΠΎ, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π±ΡΠ»ΠΎ Π±ΠΎΠ»ΡΡΠΈΠΌ ΠΏΡΠΈ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠΈ ΡΠΈΡΡ ΠΏΡΠΎΡΠ»ΠΎΠ³ΠΎ ΡΠ°Π·ΡΡΠ΄Π°.
ΠΠ° Π²ΡΡ ΠΎΠ΄Π΅ Π±ΡΠ»Π΅Π²Π° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ, true — ΠΏΠ΅ΡΠ²ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ Π±ΠΎΠ»ΡΡΠ΅, false — Π²ΡΠΎΡΠΎΠ΅.
Π€ΡΠ½ΠΊΡΠΈΡ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² Π΄Π΅Π»Π΅Π½ΠΈΠΈ ΠΈ ΡΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ.
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
Π Ρ ΠΎΠ΄Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ Π±ΡΠ» ΡΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ ΠΊΠ°Π»ΡΠΊΡΠ»ΡΡΠΎΡ Π±ΠΎΠ»ΡΡΠΎΠΉ «ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠΉ» Π°ΡΠΈΡΠΌΠ΅ΡΠΈΠΊΠΈ 8;+,*> Π΄Π»Ρ ΡΠ΅ΡΡΡΠ΅Ρ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ (+,-,*,/) Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΌΠ°Π»ΠΎΠΉ «ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠΉ» Π°ΡΠΈΡΠΌΠ΅ΡΠΈΠΊΠΈ, Ρ Π·Π°Π΄Π°Π½Π½ΡΠΌ ΠΏΡΠ°Π²ΠΈΠ»ΠΎΠΌ, ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΊΠΎΠΌΠΌΡΡΠ°ΡΠΈΠ²Π½ΠΎΡΡΠΈ (+,*), Π°ΡΡΠΎΡΠΈΠ°ΡΠΈΠ²Π½ΠΎΡΡΠΈ (+), Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²Π½ΠΎΡΡΠΈ * ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ +, Π·Π°Π΄Π°Π½Ρ Π°Π΄Π΄ΠΈΡΠΈΠ²Π½Π°Ρ Π΅Π΄ΠΈΠ½ΠΈΡΠ° «0» ΠΈ ΠΌΡΠ»ΡΡΠΈΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠ²Π½Π°Ρ Π΅Π΄ΠΈΠ½ΠΈΡΠ° «1», Ρ *0=0. ΠΠ°Π»ΡΠΊΡΠ»ΡΡΠΎΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΡΠΌΠΈ ΡΠΈΡΠ»Π°ΠΌΠΈ, Π·Π°ΡΠΈΡΠ΅Π½ ΠΎΡ Π½Π΅ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΠ³ΠΎ Π²Π²ΠΎΠ΄Π° Π΄Π°Π½Π½ΡΡ .
Π Π°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠΈΡΠ΅Π» Π΄Π°Π½Π½ΠΎΠΉ Π°ΡΠΈΡΠΌΠ΅ΡΠΈΠΊΠΈ Π² ΠΏΠΎΡΡΠ΄ΠΊΠ΅ Π²ΠΎΠ·ΡΠ°ΡΡΠ°Π½ΠΈΡ: 0<1<3<6<7<5<4<2.
ΠΠΎΠ΄ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΌΠΎΠΆΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ ΠΏΡΠΈΡΠΏΠΎΡΠΎΠ±ΠΈΡΡ Π΄Π»Ρ Π»ΡΠ±ΠΎΠΉ ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠΉ Π°ΡΠΈΡΠΌΠ΅ΡΠΈΠΊΠΈ, Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π·Π½Π°ΡΡ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ «+1». Π ΠΏΡΠΈΠ½ΡΠΈΠΏΠ΅, ΠΏΡΠΈ Π½Π΅Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΌΠΎΠΆΠ½ΠΎ Π΄Π°ΠΆΠ΅ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΡΠ°ΠΌ Π²Π²ΠΎΠ΄ΠΈΠ» Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΡ Π΅ΠΌΡ ΠΊΠΎΠ½Π΅ΡΠ½ΡΡ Π°ΡΠΈΡΠΌΠ΅ΡΠΈΠΊΡ, ΠΏΡΠΈΡΠ΅ΠΌ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ 8 ΡΠΈΡΡ. Π’Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π½Π΅ Π΄ΠΎΡΡΡΠΏΠ½Π° ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Π°Ρ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ ΡΡΠ½ΠΊΡΠΈΡ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ. ΠΡΠΈ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΡΠ°Π±Π»ΠΈΡ Π½Π΅ ΡΡΠΈΡΡΠ²Π°Π»Π°ΡΡ ΠΈΡ ΡΠΈΠΌΠΌΠ΅ΡΡΠΈΡΠ½ΠΎΡΡΡ.
Π‘ΠΏΠΈΡΠΎΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠΉ Π»ΠΈΡΠ΅ΡΠ°ΡΡΡΡ
1. Π£ΡΠ΅Π±Π½ΠΈΠΊ Π€. Π. ΠΠΎΠ²ΠΈΠΊΠΎΠ²Π° «ΠΠΈΡΠΊΡΠ΅ΡΠ½Π°Ρ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΠΊΠ° Π΄Π»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠ²».
2. Π£ΡΠ΅Π±Π½ΠΈΠΊ ΠΏΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, Π°Π²ΡΠΎΡ ΠΠ°Π²Π»ΠΎΠ²ΡΠΊΠ°Ρ Π’. Π.
3. Π£ΡΠ΅Π±Π½ΠΈΠΊ «ΠΠ»Π³ΠΎΡΠΈΡΠΌΡ: ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΠ΅ ΠΈ Π°Π½Π°Π»ΠΈΠ·», Π°Π²ΡΠΎΡ ΠΠΎΡΠΌΠ΅Π½, ΠΠ΅ΠΉΠ·Π΅ΡΡΠΎΠ½, Π ΠΈΠ²Π΅ΡΡ, Π¨ΡΠ°ΠΉΠ½.
4. ΠΠΎΠ½ΡΠΏΠ΅ΠΊΡ Π»Π΅ΠΊΡΠΈΠΉ ΠΏΠΎ Π΄ΠΈΡΠΊΡΠ΅ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΠΊΠ΅.
5. ΠΠΎΠ½ΡΠΏΠ΅ΠΊΡ Π»Π΅ΠΊΡΠΈΠΉ ΠΏΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ 1. ΠΡΠΈΠΌΠ΅Ρ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ 2. ΠΠΈΡΡΠΈΠ½Π³ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
#include
#include
using std: cout;
using std: cin;
using std: endl;
const int razr=8;
int Plus[razr][razr]; //ΡΠΎΠ·Π΄Π°Π΅ΠΌ Π΄Π²ΡΡ ΠΌΠ΅ΡΠ½ΡΠΉ ΠΌΠ°ΡΡΠΈΠ² (ΠΎΡ 0 Π΄ΠΎ 7)
int PlusP[razr][razr];
int Mult[razr][razr];
int MultP[razr][razr];
void Print (int matrix[][razr], int matrix1[][razr])
{
for (int i = 0; i < razr; i++) //Π²ΡΠ²ΠΎΠ΄ ΡΠ°Π±Π»ΠΈΡ Π½Π° ΡΠΊΡΠ°Π½
{
for (int j = 0; j < razr; j++)
cout << matrix[i][j] << ««;
cout << ««;
for (int j = 0; j < razr; j++)
cout << matrix1[i][j] << ««;
cout << endl;
}
cout << endl;
}
int Find (int n) //ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² ΡΡΠ°Π²Π½Π΅Π½ΠΈΠΈ Π΄Π²ΡΡ ΡΠΈΡΠ΅Π» ΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠ°Π±Π»ΠΈΡΠ΅ ΠΏΠΎ ΡΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΡ ΠΏΠΎ ΡΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
{
for (int i=0; i
if (Plus[1][i]==n)
{
return i;
}
return -1;
}
int ObratPlus (int n)
{
int temp;
for (int i=0; i<8; i++)
if (Plus[i][n]==0) temp=i;
return temp;
}
bool Sravn (int a, int b)//ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅. Π΅ΡΠ»ΠΈ ΠΈΠ· ΠΌΠ΅Π½ΡΡΠ΅Π³ΠΎ Π²ΡΡΠΈΡΠ°Π΅Ρ Π±ΠΎΠ»ΡΡΠ΅Π΅, ΡΠΎ ΠΌΠ΅Π½ΡΠ΅Ρ ΠΌΠ΅ΡΡΠ°ΠΌΠΈ ΡΠΈΡΠ»Π°.
{
if (a==0) return false;
if (b==0) return true;
bool rez=false;
int ostA=a, ostB=b, temp;
int n1, n2;
for (int i=0; ostA>0||ostB>0; i++)
{
n1=0;
n2=0;
temp=ostA%10;
if (temp≠0)
do
{temp=Find (temp);
n1++;
}
while (temp≠0);
temp=ostB%10;
if (temp≠0)
do
{
temp=Find (temp);
n2++;
}
while (temp≠0);
if (n1≠n2)
if (n2>n1)
rez=false;
else
rez=true;
ostA/=10;
ostB/=10;
}
return rez;
}
int Summ (int a, int b, bool p)//ΡΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅
{
int rez=0, bp=0;
int ostA=a, ostB=b, tempA, tempB;
int i=1;
for (i; ostA>0 || ostB>0; i*=10)
{
tempA=ostA%10;
tempB=(p)?ostB%10:ObratPlus (ostB%10);
rez+=Plus[Plus[tempA][tempB]][bp]*i;
if (p==true)
bp=PlusP[tempA][tempB]+PlusP[Plus[tempA][tempA]][bp];
else//Π²ΡΡΠΈΡΠ°Π½ΠΈΠ΅
{
if (Sravn (ostB%10, tempA)||(tempA==ostB%10 && bp≠0))
{
bp=2;
}
else bp=0;
}
ostA/=10;
ostB/=10;
}
rez+=bp*i;
return rez;
}
int CheckSum (int a, int b, bool p)//ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° a>b, Π΅ΡΠ»ΠΈ Π½Π΅Ρ, ΠΌΠ΅Π½ΡΠ΅Ρ ΠΌΠ΅ΡΡΠ°ΠΌΠΈ, Π° ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π² ΡΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΡΠΌΠ½ΠΎΠΆΠ°Π΅Ρ Π½Π° -1
{
bool need=false;
if (p==false)
need=Sravn (b, a);
if (p==false && need==true)
return (-1)*Summ ((need)?b:a, (need)?a:b, p);
return Summ ((need)?b:a, (need)?a:b, p);
}
int Umnog (int a, int b)//ΡΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅
{
int REZ=0;
int ostB=b;
for (int j=1; ostB>0; j*=10)
{
int tempB=ostB%10;
int tempREZ=0;
int ostA=a;
int i=1;
int dopU=0;
for (i; ostA>0; i*=10)
{
int tempA=ostA%10;
int tempDop=Summ (Mult[tempA][tempB], dopU, 1);
tempREZ+=tempDop%10*i;
dopU=Summ (tempDop/10, MultP[tempA][tempB], 1);
ostA/=10;
}
tempREZ+=dopU*i;
REZ=Summ (REZ, tempREZ*j, 1);
ostB/=10;
}
return REZ;
}
int Delen (int a, int b, int* mod) //ΡΡΠ½ΠΊΡΠΈΡ Π΄Π΅Π»Π΅Π½ΠΈΡ
{
if (Sravn (b, a))
{
*mod=a;
return 0;
}
int l1=Length (a);
int l2=Length (b);
int REZ=0;
int tempA=a/pow (10,(l1-l2));
for (int k=1; l1>=l2+k-1; k++)
{
int min=0;
for (int i=1; i
{
int z=Umnog (i, b);
if (Sravn (i, min) && !Sravn (z, tempA))
min=i;
}tempA=Summ (tempA, Umnog (min, b), 0);
if (Length (a) >= Length (b)+k)
tempA=tempA*10+(a%int (pow (10,(Length (a)-Length (b)-k+1)))/int (pow (10,Length (a)-Length (b)-k)));
REZ=REZ*10+min;
}
*mod=tempA;
return REZ;
}
void SetMult (int a, int b) //ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠ°Π±Π»ΠΈΡΡ ΠΏΠΎ ΡΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠ° ΠΏΠΎ ΡΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΡ
{
int temp=0, tempB=b;
while (tempB>0)
{
temp=Summ (temp, a, 1);
tempB=Summ (tempB, 1,0);
}
Mult[a][b]=temp%10;
MultP[a][b]=(b==0)?0:temp/10;
}
void SetPlus (int a, int b) //ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠ°Π±Π»ΠΈΡΡ ΠΏΠΎ ΡΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠ° ΠΏΠΎ ΡΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
{
int n=0;
int temp=a;
do
{
temp=Find (temp);
n++; //ΠΈΠ· ΡΠΊΠΎΠ»ΡΠΊΠΈΡ Π΅Π΄ΠΈΠ½ΠΈΡ ΡΠΎΡΡΠΎΠΈΡ ΡΠΈΡΡΠ°
}
while (temp≠0);
temp=b;
for (int i=0; i
{
temp=Plus[1][temp];
if (temp==0 && a≠0)
PlusP[a][b]=1;
}
Plus[a][b]=temp;
}
int Work (int a, int b, char z) //ΡΠ°Π±ΠΎΡΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ
{
cout<
int Last, mod=0;
int ost, temp;
ost=abs (a);
while (ost>0)
{
temp=ost%10;
if (temp>7)
{
cout<<" ΠΠ΅Π²Π΅ΡΠ½ΡΠΉ Π²Π²ΠΎΠ΄, ΠΏΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅ ΡΠ½ΠΎΠ²Π°! n" <
goto n0;
}
ost/=10;
}
ost=abs (b);
while (ost>0)
{
temp=ost%10;
if (temp>7)
{
cout<<" ΠΠ΅Π²Π΅ΡΠ½ΡΠΉ Π²Π²ΠΎΠ΄, ΠΏΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅ ΡΠ½ΠΎΠ²Π°! n" <
goto n0;
}
ost/=10;
}
switch (z) //ΡΠ²ΠΈΡ Π΄Π»Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ
{
case '+':
if (a>=0 && b>=0)
Last=CheckSum (a, b,1);
else
if (a<0 && b<0)
Last=-1*CheckSum (abs (a), abs (b), 1);
else
Last=-1*CheckSum (abs (a), abs (b), 0);
break;
case '-':
if (a>=0 && b<0)
Last=CheckSum (a, abs (b), 1);
else
if (a<0 && b>=0)
Last=-1*CheckSum (abs (a), b,1);
else
if (a>=0 && b>=0)
Last=CheckSum (a, b,0);
else
Last=-1*CheckSum (abs (a), abs (b), 0);
break;
case '*':
if (a<0 && b>=0 || a>=0 && b<0)
Last=(-1)*Umnog (abs (a), abs (b));
else
Last=Umnog (abs (a), abs (b));
break;
case '/':
if (b==0)
{
if (a==0)
{
cout<<" ΠΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΡΡΡ. ΠΡΠ±ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ Π² ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΊΠ΅ [-222 222 222;222222222]n" <
goto n0;
}
else
{
cout<<" ΠΠ° Π½ΠΎΠ»Ρ Π΄Π΅Π»ΠΈΡΡ Π½Π΅Π»ΡΠ·Ρ! (ΠΈΡΠΊΠ». 0/0)n" <
n0:char ans='2';
cout<< «ΠΠ»Ρ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΡ Π½Π°ΠΆΠΌΠΈΡΠ΅ Π»ΡΠ±ΡΡ Π¦ΠΠ€Π Π£ (ΠΊΡΠΎΠΌΠ΅ 1) ΠΈΠ»ΠΈ ΠΠ£ΠΠΠ£, Π΄Π»Ρ Π²ΡΡ ΠΎΠ΄Π° 1n» ;
cin>>ans;
if (ans=='1')
exit (0);
else
return 1;
}
}
if (a<0 && b>0 || a>=0 && b<0)
Last=(-1)*Delen (abs (a), abs (b), &mod);
else
Last=Delen (abs (a), abs (b), &mod);
break;
}
Π’Π°Π±Π»ΠΈΡΠ° Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΉ ΠΏΠΎ ΡΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
+s | |||||||||
Π’Π°Π±Π»ΠΈΡΠ° ΠΏΠΎ ΡΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΡ.
* | |||||||||
Π’Π°Π±Π»ΠΈΡΠ° Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΉ ΠΏΠΎ ΡΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΡ.
*s | |||||||||