Последовательность Фибоначчи образуется так: первый и второй член последовательности равны 1, каждый следующий равен сумме двух предыдущих. Найти сумму всех чисел в последовательности Фибоначчи, которые не превосходят 1000. Программу написать на C++
1. Формат с фиксированной запятой (фиксированной точкой) предполагает размещение знака числа в самом старшем (левом) бите, а остальные биты отводятся под двоичное представление числа. Сама десятичная точка (запятая) не хранится, она подразумевается. Наибольшее распространение получили два представления чисел: когда запятая фиксируется после самого младшего разряда (и тогда мы имеем целое число с нулевой дробной частью), либо когда запятая фиксируется сразу после знакового разряда (и тогда мы имеем десятичную дробь с нулевой целой частью). В процессорах фирмы Intel и программно совместимых с ними, отдельное представление данных с фиксированной точкой отсутствует; в качестве такого представления используются целые числа, что фактически совпадает с первым из описанных При этом в двух байтах под разряды числа отводятся 15 бит. Следовательно, максимальное число может быть равно 2^15-1=32767.
2. Ноль в знаковом разряде означает, что число неотрицательное.
3. В коде ASCII для кодировки символов используется таблица размером 256 символов, так что символ занимает один байт. При этом первая половина таблицы (коды 0-127) фиксирована, а вторая может заполняться символами национальных алфавитов, поэтому существует множество кодовых таблиц ASCII. Например, в системе MS DOS для России используется кодовая таблица CР866, а в Windows - СР1251 В UNICODE для кодирования символа используются два байта, что позволяет иметь 65536 кодов.
Так как в задании не указано, что введенное слово должно обрамляться пробелами, то код может быть такой:
var s,a:string; begin write('Введите строку : '); readln(s); write('Введите слово : '); readln(a); if(pos(a, s) <> 0) then writeln('Слово "',a,'" в строке есть') else writeln('В строке такого слова нет'); end.
Тест №1 Введите строку : Привет участникам олимпиады! Введите слово : ник Слово "ник" в строке есть
Тест №2 Введите строку : Всем привет! Введите слово : админ В строке такого слова нет
#include <iostream>
int main()
{
int sum=2;
int current = 2, prev = 1, prev2 = 1;
// Русский язык в консоли
setlocale(LC_ALL, "Russian");
do
{
sum += current;
prev2 = prev;
prev = current;
current = prev + prev2;
}
while (sum+current < 1000);
std::cout << "Сумма всех чисел в последовательности Фибоначчи, которые не превосходят 1000: " << sum << std::endl;
return 0;
}