В n будем хранить количество чисел, которые ещё нужно вывести. a и b - предыдущее и текущее числа Фибоначчи. По определению, следующее число Фибоначчи равно сумме двух предыдущих, так что новое значение b будет a + b. Чтобы не заводить новую временную переменную, новое значение a можно будет найти, вычитая из нового b старое a, получится (a + b) - a = b.
Код процедуры:
procedure print_fib(n: integer);
var a, b, t: integer;
begin
a := 0;
b := 1;
while n > 0 do
begin
write(b, ' ');
b := a + b;
a := b - a;
n := n - 1;
end;
end;
Пример основной программы:
begin
print_fib(10)
end.
Вывод:
1 1 2 3 5 8 13 21 34 55
Поделитесь своими знаниями, ответьте на вопрос:
Сделать календарь на год с++ вот пример на месяц. пользователь вводит число 3 выводится календарь на май . циклами. без массива. int a = 4, i, j; cout < < " pn vt sr ch pt sb vs \n"; for (i = 1, j = 1; i < 32; i++) { if (i == 1 & & j < a) { cout < < " "; i--; } else { cout < < " "; if (i < 10)cout < < " "; cout < < i < < " "; } if (++j > 7) { j = 1; cout < < "\n\n"; } }
using namespace std;
int main()
{
int D = 0, M;
cout <<"M = ",cin >> M;
if (M>1) D+=31;
if (M>2) D+=28;
if (M>3) D+=31;
if (M>4) D+=30;
if (M>5) D+=31;
if (M>6) D+=30;
if (M>7) D+=31;
if (M>8) D+=31;
if (M>9) D+=30;
if (M>10) D+=31;
if (M>11) D+=30;
D = D % 7;
if (D == 0) D = 7;
if (M==1||M==3||M==5||M==7||M==8||M==10||M==12) M = 32;
else if (M==4||M==6||M==9||M==11) M = 31;
else M = 29;
for(int i = 1; i < D; i++)
cout<<" ";
cout<<" ";
for(int i = D; i < 8; i++)
cout <<i-D+1<<" ";
int i = 9-D;
while(i < M)
{
cout <<'\n';
for(int j = 0; j < 7&&i < M; j++)
{
if (i < 10) cout<<' ';
cout << i++<<" ";
}
}
return 0;
}