картинка
Объяснение:
1.
Минимальное двоичное число из 5 цифр: 10000₂
10000₂ = 1 * 2⁴ + 0 * 2³ + 0 * 2² + 0 * 2¹ + 0 * 2⁰ = 16 + 0 + 0 + 0 + 0 = 16₁₀
Максимальное двоичное число из 5 цифр: 11111₂
11111₂ = 1 * 2⁴ + 1 * 2³ + 1 * 2² + 1 * 2¹ + 1 * 2⁰ = 16 + 8 + 4 + 2 + 1 = 31₁₀
2.
1 / 2 = 0 + остаток 1
записываем остатки снизу вверх
1₁₀ = 1₂
2 / 2 = 1 + остаток 0
1 / 2 = 1 + остаток 1
2₁₀ = 10₂
3 / 2 = 1 + остаток 1
3₁₀ = 11₂
4 / 2 = 2 + остаток 0
4₁₀ = 100₂
5 / 2 = 1 + остаток 1
5₁₀ = 101₂
6 / 2 = 3 + остаток 0
6₁₀ = 110₂
7 / 2 = 3 + остаток 1
7₁₀ = 111₂
8 / 2 = 4 + остаток 0
8₁₀ = 1000₂
9 / 2 = 4 + остаток 1
9₁₀ = 1001₂
10 / 2 = 5 + остаток 0
10₁₀ = 1010₂
11 / 2 = 5 + остаток 1
11₁₀ = 1011₂
12 / 2 = 6 + остаток 0
12₁₀ = 1100₂
13 / 2 = 6 + остаток 1
13₁₀ = 1101₂
14 / 2 = 7 + остаток 0
14₁₀ = 1110₂
16 / 2 = 8 + остаток 0
16₁₀ = 10000₂
3. Где есть цифра 1 - пишем 1, где цифр нет - пишем 0.
#define maxsize 105
typedef struct station{
int x, y, z;
} station;
int abs(int x){
return x >= 0 ? x : -x;
}
int min(int a, int b){
return a <= b ? a : b;
}
int main(){
FILE *ist, *ost;
station s[maxsize];
int w[maxsize][maxsize];
int inc[maxsize];
int n,i,j,k,m,l,r;
ist = fopen("input.txt","r");
fscanf(ist, "%d", &n);
for(i = 0; i < n; i++) fscanf(ist, "%d %d %d", &s[i].x, &s[i].y, &s[i].z);
fclose(ist);
for(i = 0; i < n; i++) inc[i] = 0;
for(i = 0; i < n; i++)
for(j = i; j < n; j++)
w[i][j] = w[j][i] = min(abs(s[i].x - s[j].x), min(abs(s[i].y - s[j].y), abs(s[i].z - s[j].z)) );
r = 0; k = 1;
inc[0] = 1;
while(k < n){
m = -1;
for(i = 0; i < n; i++) if(inc[i])
for(j = 0; j < n; j++) if(!inc[j])
if (m == -1 || w[i][j] < m) m = w[i][j], l = j;
r += m;
inc[l] = 1;
k++;
}
ost = fopen("output.txt","w");
fprintf(ost,"%d", r);
fclose(ost);
return 0;
}
картинка
Объяснение:
1.
Минимальное двоичное число из 5 цифр: 10000₂
10000₂ = 1 * 2⁴ + 0 * 2³ + 0 * 2² + 0 * 2¹ + 0 * 2⁰ = 16 + 0 + 0 + 0 + 0 = 16₁₀
Максимальное двоичное число из 5 цифр: 11111₂
11111₂ = 1 * 2⁴ + 1 * 2³ + 1 * 2² + 1 * 2¹ + 1 * 2⁰ = 16 + 8 + 4 + 2 + 1 = 31₁₀
2.
1 / 2 = 0 + остаток 1
записываем остатки снизу вверх
1₁₀ = 1₂
2 / 2 = 1 + остаток 0
1 / 2 = 1 + остаток 1
записываем остатки снизу вверх
2₁₀ = 10₂
3 / 2 = 1 + остаток 1
1 / 2 = 1 + остаток 1
записываем остатки снизу вверх
3₁₀ = 11₂
4 / 2 = 2 + остаток 0
2 / 2 = 1 + остаток 0
1 / 2 = 1 + остаток 1
записываем остатки снизу вверх
4₁₀ = 100₂
5 / 2 = 1 + остаток 1
2 / 2 = 1 + остаток 0
1 / 2 = 1 + остаток 1
записываем остатки снизу вверх
5₁₀ = 101₂
6 / 2 = 3 + остаток 0
3 / 2 = 1 + остаток 1
1 / 2 = 1 + остаток 1
записываем остатки снизу вверх
6₁₀ = 110₂
7 / 2 = 3 + остаток 1
3 / 2 = 1 + остаток 1
1 / 2 = 1 + остаток 1
записываем остатки снизу вверх
7₁₀ = 111₂
8 / 2 = 4 + остаток 0
4 / 2 = 2 + остаток 0
2 / 2 = 1 + остаток 0
1 / 2 = 1 + остаток 1
записываем остатки снизу вверх
8₁₀ = 1000₂
9 / 2 = 4 + остаток 1
4 / 2 = 2 + остаток 0
2 / 2 = 1 + остаток 0
1 / 2 = 1 + остаток 1
записываем остатки снизу вверх
9₁₀ = 1001₂
10 / 2 = 5 + остаток 0
5 / 2 = 1 + остаток 1
2 / 2 = 1 + остаток 0
1 / 2 = 1 + остаток 1
записываем остатки снизу вверх
10₁₀ = 1010₂
11 / 2 = 5 + остаток 1
5 / 2 = 1 + остаток 1
2 / 2 = 1 + остаток 0
1 / 2 = 1 + остаток 1
записываем остатки снизу вверх
11₁₀ = 1011₂
12 / 2 = 6 + остаток 0
6 / 2 = 3 + остаток 0
3 / 2 = 1 + остаток 1
1 / 2 = 1 + остаток 1
записываем остатки снизу вверх
12₁₀ = 1100₂
13 / 2 = 6 + остаток 1
6 / 2 = 3 + остаток 0
3 / 2 = 1 + остаток 1
1 / 2 = 1 + остаток 1
записываем остатки снизу вверх
13₁₀ = 1101₂
14 / 2 = 7 + остаток 0
7 / 2 = 3 + остаток 1
3 / 2 = 1 + остаток 1
1 / 2 = 1 + остаток 1
записываем остатки снизу вверх
14₁₀ = 1110₂
16 / 2 = 8 + остаток 0
8 / 2 = 4 + остаток 0
4 / 2 = 2 + остаток 0
2 / 2 = 1 + остаток 0
1 / 2 = 1 + остаток 1
записываем остатки снизу вверх
16₁₀ = 10000₂
3. Где есть цифра 1 - пишем 1, где цифр нет - пишем 0.