C # - Número de Mapeamento String - Logic resistente

votos
0

Meu TL me pediu para implementar esta:

Se temos os alfabetos em Inglês numerado como

a   1
b   2
c   3
d   4
e   5
f   6
g   7
h   8
i   9
j   1
k   2
l   3
m   4
n   5
o   6
p   7
q   8
r   9
s   1
t   2
u   3
v   4
w   5
x   6
y   7
z   8

as vogais seria

a   1
e   5
i   9
o   6
u   3

O usuário deve digitar:

  1. Número de Vogais
  2. Soma
  3. Número de caracteres

Agora eu preciso para exibir uma cadeia de comprimento: número de caracteres digitados pelo usuário.
The String teria duas partes:
a primeira parte teria as vogais com montante inscrito pelo usuário.
A segunda parte seria de comprimento [número de caracteres inseridos pelo utilizador - vogais de acordo com a primeira metade de cadeia acima] e a soma seria o mesmo inserido pelo utilizador.

Pode qualquer write corpo C # código para isso. Eu tentei realmente difícil, mas não conseguiu descobrir.

Qualquer ajuda seria muito apreciada.

Aqui está o meu código até agora:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace VowelsAndConsonants
{
    class Program
    {
        static void Main(string[] args)
        {
            //Gather Info from the User
            Console.WriteLine(Please Enter Number of Vowels);
            string numVowels = Console.ReadLine();
            Console.WriteLine(Please Enter the Total);
            string total = Console.ReadLine();
            Console.WriteLine(Please Enter the Number of Chars);
            string numChars = Console.ReadLine();
            //Convert the Strings entered by User to int
            int inNumVowels = Convert.ToInt16(numVowels);
            int intTotal = Convert.ToInt16(total);
            int intNumChars = Convert.ToInt16(numChars);
            //Populate the Array with all the alphanets
            string[,] arr = new string[,] { { a, 1 }, { b, 2 }, { c, 3 }, { d, 4 }, { e, 5 }, { f, 6 }, { g, 7 }, { h, 8 }, { i, 9 }, { j, 1 }, { k, 2 }, { l, 3 }, { m, 4 }, { n, 5 }, { o, 6 }, { p, 7 }, { q, 8 }, { r, 9 }, { s, 1 }, { t, 2 }, { u, 3 }, { v, 4 }, { w, 5 }, { x, 6 }, { y, 7 }, { z, 8 } };
            string[] resArr= new string[20];// = null;
            for (int i = 0; i < intNumChars; i++)
            {
                //The logic you guys would suggest goes here
                resArr[0]=arr[,];
                //Display the string
                Console.WriteLine();
            }
        }
    }
}
Publicado 27/08/2009 em 05:36
fonte usuário
Em outras línguas...                            


2 respostas

votos
6

A parte mais difícil não é escrever o código. A parte difícil é descobrir o que o algoritmo é que resolve este problema. Assim que tiver o algoritmo de sólidos, transformando-o em código será simples.

Quais são seus pensamentos sobre o algoritmo? Comece com alguns exemplos inventados. Por exemplo, suponha que você está dado 1/9/2. Uma solução para isto é IR. Como você, como um ser humano, venha com essa solução? Pode descrever um método pelo qual você, um ser humano, pode sempre vir para cima com a resposta?

Respondeu 27/08/2009 em 07:03
fonte usuário

votos
0

Eu acho que você está no caminho errado com o uso mod.

Parece-me que esta é uma variação de um problema "algoritmo guloso", normaly associado com o trabalho fora mudança eficiente com moedas em questões de casa, mas acho que isso parece ser uma variante do mesmo.

Wikipedia tem uma página sobre ele , e tenho a certeza pesquisando algoritmo guloso vai ajudá-lo.

Respondeu 27/08/2009 em 06:24
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more