<u>Answer:</u>
<em>using System;
</em>
<em>public class Program
</em>
<em>{
</em>
<em> public static void Main()
</em>
<em> {
</em>
<em> String input ;
</em>
<em> while(true)
</em>
<em> {
</em>
<em> input = Console.ReadLine();
</em>
<em> if(input.Equals(""quit""))
</em>
<em> break;
</em>
<em> Reverse_String(input);
</em>
<em> }
</em>
<em> return;
</em>
<em> }
</em>
<em>static void Reverse_String(string input_text)
</em>
<em>{
</em>
<em> char[] text = input_text.ToCharArray();
</em>
<em> Array.Reverse(text);
</em>
<em> Console.WriteLine(text);
</em>
<em>}
</em>
<u>Explanation:</u>
<em>In the above program a separate function is written to reverse the string.</em>
This method takes the string as an argument and place it in a array and then use the built-in function reverse and print the reversed string in the console.
<em>In the main(), the input is obtained from the console and it is passed to the reversestring().
</em>
How efficient well if we are transmitting 6bits and we need 10 to transmit the 6 bits that would be 6/10 = .6 = 60% efficient.