Rozwiązania - Python
Zadanie 1
Python C++
with open ( "integers.txt" ) as file :
numbers = list ( map ( int , file . read () . split ()))
min_val = min ( numbers )
max_val = max ( numbers )
print ( "Minimum:" , min_val , "Pozycja:" , numbers . index ( min_val ) + 1 )
print ( "Maksimum:" , max_val , "Pozycja:" , numbers . index ( max_val ) + 1 )
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std ;
int main () {
ifstream file ( "integers.txt" );
vector < int > numbers ;
int num ;
while ( file >> num ) {
numbers . push_back ( num );
}
auto min_val = * min_element ( numbers . begin (), numbers . end ());
auto max_val = * max_element ( numbers . begin (), numbers . end ());
cout << "Minimum: " << min_val << " Pozycja: " << ( find ( numbers . begin (), numbers . end (), min_val ) - numbers . begin () + 1 ) << endl ;
cout << "Maksimum: " << max_val << " Pozycja: " << ( find ( numbers . begin (), numbers . end (), max_val ) - numbers . begin () + 1 ) << endl ;
return 0 ;
}
Zadanie 2
Zadanie 3
=== "Python
```python linenums="1"
with open("integers.txt") as file:
numbers = list(map(int, file.read().split()))
counter = 0
for num in numbers:
if num % 2 == 0:
counter += 1
print(counter)
```
Zadanie 4
Zadanie 5
Zadanie 6
Zadanie 7
Zadanie 8
Zadanie 9
Python C++
with open ( "integers.txt" ) as file :
numbers = list ( map ( int , file . read () . split ()))
numbers_sum = []
for num in numbers :
digit_sum = 0
while num > 0 :
digit_sum += num % 10
num //= 10
numbers_sum . append ( digit_sum )
min_sum = min ( numbers_sum )
max_sum = max ( numbers_sum )
print ( "Minimalna suma cyfr:" , min_sum , "Liczba:" , numbers [ numbers_sum . index ( min_sum )])
print ( "Maksymalna suma cyfr:" , max_sum , "Liczba:" , numbers [ numbers_sum . index ( max_sum )])
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std ;
int digit_sum ( int num ) {
int sum = 0 ;
while ( num > 0 ) {
sum += num % 10 ;
num /= 10 ;
}
return sum ;
}
int main () {
ifstream file ( "integers.txt" );
vector < int > numbers ;
int num ;
while ( file >> num ) {
numbers . push_back ( num );
}
vector < int > numbers_sum ;
for ( int num : numbers ) {
numbers_sum . push_back ( digit_sum ( num ));
}
int min_sum = * min_element ( numbers_sum . begin (), numbers_sum . end ());
int max_sum = * max_element ( numbers_sum . begin (), numbers_sum . end ());
cout << "Minimalna suma cyfr: " << min_sum << " Liczba: " << numbers [ distance ( numbers_sum . begin (), find ( numbers_sum . begin (), numbers_sum . end (), min_sum ))] << endl ;
cout << "Maksymalna suma cyfr: " << max_sum << " Liczba: " << numbers [ distance ( numbers_sum . begin (), find ( numbers_sum . begin (), numbers_sum . end (), max_sum ))] << endl ;
return 0 ;
}
Zadanie 10
Python C++
from math import gcd
with open ( "integers.txt" ) as file :
numbers = list ( map ( int , file . read () . split ()))
min_pair = ( 0 , 0 )
max_pair = ( 0 , 0 )
min_sum = 500
max_sum = 0
for i in range ( len ( numbers )):
for j in range ( i + 1 , len ( numbers )):
if gcd ( numbers [ i ], numbers [ j ]) == 1 :
sum_pair = numbers [ i ] + numbers [ j ]
if sum_pair < min_sum :
min_pair = ( numbers [ i ], numbers [ j ])
min_sum = sum_pair
elif sum_pair > max_sum :
max_pair = ( numbers [ i ], numbers [ j ])
max_sum = sum_pair
print ( "Para o największej sumie:" , max_pair )
print ( "Para o najmniejszej sumie:" , min_pair )
#include <iostream>
#include <fstream>
#include <vector>
#include <numeric>
using namespace std ;
int gcd ( int a , int b ) {
while ( b != 0 ) {
int temp = b ;
b = a % b ;
a = temp ;
}
return a ;
}
int main () {
ifstream file ( "integers.txt" );
vector < int > numbers ;
int num ;
while ( file >> num ) {
numbers . push_back ( num );
}
pair < int , int > min_pair = { 0 , 0 };
pair < int , int > max_pair = { 0 , 0 };
int min_sum = 500 ;
int max_sum = 0 ;
for ( size_t i = 0 ; i < numbers . size (); ++ i ) {
for ( size_t j = i + 1 ; j < numbers . size (); ++ j ) {
if ( gcd ( numbers [ i ], numbers [ j ]) == 1 ) {
int sum_pair = numbers [ i ] + numbers [ j ];
if ( sum_pair < min_sum ) {
min_pair = { numbers [ i ], numbers [ j ]};
min_sum = sum_pair ;
} else if ( sum_pair > max_sum ) {
max_pair = { numbers [ i ], numbers [ j ]};
max_sum = sum_pair ;
}
}
}
}
cout << "Para o największej sumie: (" << max_pair . first << ", " << max_pair . second << ")" << endl ;
cout << "Para o najmniejszej sumie: (" << min_pair . first << ", " << min_pair . second << ")" << endl ;
return 0 ;
}
Zadanie 11
Zadanie 12
Zadanie 13
Zadanie 14
Wersja 1
Sprawdzenie, czy liczba jest potęgą dwójki, możemy wykonać za pomocą wielokrotnego dzielenia liczby przez dwa. Jeżeli w trakcie dzielenia natrafimy na liczbę nieparzystą, to liczba nie jest potęgą dwójki. Jeżeli natomiast dotrzemy do wartości 1, to liczba jest potęgą dwójki.
Wersja 2
Sprawdzenie, czy liczba jest potęgą dwójki, możemy także oprzeć na zapisie binarnym liczby. Jeżeli liczba jest potęgą dwójki, to w jej zapisie binarnym znajduje się dokładnie jedna jedynka. W takim razie, jeżeli wykonamy operację bitową AND na sprawdzanej liczbie i jej wartości pomniejszonej o jeden (zakładając, że liczba jest większa od zera), to dostaniemy jako wynik zero wtedy i tylko wtedy, gdy sprawdzana liczba jest potęgą dwójki..
Rozwiązanie
Zadanie 15
Zadanie 16
Zadanie 17
Zadanie 18
Zadanie 19
Python C++
with open ( file_name ) as file :
numbers = list ( map ( int , file . read () . split ()))
counter = 0
for i in range ( len ( numbers )):
for j in range ( i + 1 , len ( numbers )):
for k in range ( j + 1 , len ( numbers )):
a , b , c = numbers [ i ], numbers [ j ], numbers [ k ]
if a + b + c - max ( a , b , c ) > max ( a , b , c ):
counter += 1
print ( counter )
#include <iostream>
#include <fstream>
#include <vector>
using namespace std ;
int main () {
ifstream file ( "file_name" );
vector < int > numbers ;
int num ;
while ( file >> num ) {
numbers . push_back ( num );
}
int counter = 0 ;
for ( size_t i = 0 ; i < numbers . size (); ++ i ) {
for ( size_t j = i + 1 ; j < numbers . size (); ++ j ) {
for ( size_t k = j + 1 ; k < numbers . size (); ++ k ) {
int a = numbers [ i ], b = numbers [ j ], c = numbers [ k ];
if ( a + b + c - max ({ a , b , c }) > max ({ a , b , c })) {
counter += 1 ;
}
}
}
}
cout << counter << endl ;
return 0 ;
}
Zadanie 20
Zadanie 21
Zadanie 22
Zadanie 23
Zadanie 24