{данная программа переводит любое сочетание символов ascii в систему счисления заданную пользователем.}
//pascal abc.net v3.0 сборка 1111
var
a,i,b,r,n,j,bug: integer;
s,se,slo,slof: string;
procedure preob(var a,b,n: integer; var se: string);
begin
repeat
b: =a mod n;
a: =a div n;
str(b,se);
s+=se;
until (a< =n-1);
end;
beginreadln(slo);
readln(n);
for j: =1 to length(slo) do
begin;
a: =ord(slo[j]);
preob(a,b,n,se);
str(a,se);
s+=se;
for i: =1 to length(s) div 2 do
begin;
se: =s[i];
s[i]: =s[length(s)-i+1];
s[length(s)-i+1]: =se[1];
end;
write(s,'-');
slof: =slof+s;
delete(s,1,length(s));
end;
end.
пример ввода:
работа на завтра.
2
пример вывода:
11000100-11101110-11101100-11100000-11111000-11101101-11111111-11111111-100000-11110000-11100000-11100001-11101110-11110010-11100000-100000-11101101-11100000-100000-11100111-11100000-11100010-11110010-11110000-11100000-101110-
{таким образом, фразу " работа на завтра." можно закодировать как "11000100-11101110-11101100-11100000-11111000-11101101-11111111-11111111-100000-11110000-11100000-11100001-11101110-11110010-11100000-100000-11101101-11100000-100000-11100111-11100000-11100010-11110010-11110000-11100000-101110-".}
Решалось примерно следующим образом:
Объявить две переменные для числа n и суммы чисел. А хотя нет. Надо три(ещё управляющая переменная для for)
Ввести число n
Зная, что натуральные числа - это все числа от единицы, создаём цикл for с таким условием: управляющая переменная i = 1, i < n i++(увеличить на 1)
(на паскале будет примерно так:
for i := 1 to (n - 1) do
begin
end;
)
Далее в теле цикла сделать условие: если i делится без остатка, то прибавить это число к переменной для суммы чисел(которая в начале равна 0)
Ну и в конце вывести сумму.
Вот вариант на C++
#include <iostream>
using std::cout;
using std::cin;
using std::endl;
int main()
{
int n, total = 0;
cout << "Enter the number: ";
cin >> n;
for(int i = 1; i < n; i++)
{
if(i % 3 == 0)
{
total += i;
}
}
cout << "Sum = " << total << endl;
cin.get();
return 0;
}
Вроде и на Паскале получилось:
program test;
var i, n, total:integer;
begin
write('Enter n: ');
readln(n);
total := 0;
for i := 1 to (n - 1) do
begin
if i mod 3 = 0 then
total := total + i;
end;
writeln('sum = ', total);
readln();
end.