По тексту вывести последовательность Фибоначчи - C#
Формулировка задачи:
Нужно заменить буквы слова на последовательность Фибоначчи, начиная с тройки и после каждого числа ставить #. Например, букве "а" соответствует - 3, букве "б" - 5, букве "в" - 8 и т.д.
Пример:
Часть кода:
Ввод:
привет
Вывод:
6765#10946#233#8#34#28657
string str = "абвгдеёжзийклмнопрстуфхцчшщъыьэюя";
string output = "";
int[] a = new int[str.Length];
a[0] = 3;
a[1] = 5;
for (int i = 2; i < str.Length; i++)
{
a[i] = a[i - 1] + a[i - 2];
}
for (int i = 0; i < str.Length; i++)
{
if(i == 0)
{
output += a[i];
}
else
{
output += "#" + a[i];
}
}
Console.Write("{0}", output);Решение задачи: «По тексту вывести последовательность Фибоначчи»
textual
Листинг программы
using System;
using System.Linq;
using System.Collections.Generic;
class Program
{
static void Main()
{
Dictionary<char, string> fib = new Dictionary<char, string>();
int a = 1;
int b = 2;
foreach (char ch in "абвгдеёжзийклмнопрстуфхцчшщьыъэюя")
{
int f = a + b;
fib[ch] = f.ToString();
a = b;
b = f;
}
Console.WriteLine(String.Join("#",
"привет!".Select(ch => fib.ContainsKey(ch) ? fib[ch] : ch.ToString())
));
}
}