#include <iostream>
#include <cstring>
#include <vector>
#include <algorithm>
struct StudentData
{
std::string name;
std::string surname;
int math;
int phys;
int comp_science;
};
bool
comp(const StudentData &a, const StudentData &b)
{
int tmp1 = a.math + a.phys + a.comp_science;
int tmp2 = b.math + b.phys + b.comp_science;
return tmp1 > tmp2 ? true : false;
}
int
main(void)
{
int n;
std::cin >> n;
std::vector< StudentData > data(n);
for (int i = 0; i < n; i++) {
std::cin >> data[i].name >> data[i].surname;
std::cin >> data[i].math >> data[i].phys >> data[i].comp_science;
}
std::sort(data.begin(), data.end(), comp);
for (int i = 0; i < n; i++) {
std::cout << data[i].name << " " << data[i].surname << std::endl;
}
return 0;
}
17/2=8 остаток 1
8/2=4 остаток 0
4/2=2 остаток 0
2/2= 1 остаток 0
Получается 10001 (2)= 17(10)
цифр 0 в двоичном представлении 3
Using System;
// Написать программу, выводящую на экран таблицу квадратов
// четных чисел от 0 до 10 в убывающем порядке: 100, 81, 49...
// Составь блок-схему алгоритма, и напиши программу которая
// выводит на экране узор, состоящий из звездочек. Должно быть 20 строчек со звездочками так, чтобы в каждой последующей строке было на одну звездочку больше. Для вывода на экран строки, со- держащей N звездочек, используй команды
// String repeatedString = new String('*', N); Console.Write (repeatedString);
// Microsoft visual studio c#
namespace NoNamespace {
internal class Program {
private static void Main() {
SquaresOfNumbersDesc();
Stars(20, 10);
Console.ReadLine();
}
private static void SquaresOfNumbersDesc() {
Console.WriteLine();
for (var i = 10; i >= 0; i = i - 2) {
Console.Write("{0} ", i * i);
}
Console.WriteLine();
}
private static void Stars(int n, int start_stars) {
Console.WriteLine();
for (var i = 0; i < n; i++) {
Console.WriteLine(new String('*', start_stars + i));
}
Console.WriteLine();
}
}
}
Вот решение, прикрепил снизу:
Const n=8;
var a:array[1..n,1..n] of integer;
i,j:integer;
begin
for i:=1 to n do a[i,i]:=n-i+1;
for i:=1 to n do
begin
for j:=1 to n do write(a[i,j]:2);
writeln;
end;
end.
Пример:
8 0 0 0 0 0 0 0
0 7 0 0 0 0 0 0
0 0 6 0 0 0 0 0
0 0 0 5 0 0 0 0
0 0 0 0 4 0 0 0
0 0 0 0 0 3 0 0
0 0 0 0 0 0 2 0
0 0 0 0 0 0 0 1