Ejercicios básicos - el número de lecturas


Título: el número de ejercicios básicos lecturas
categorías:

  • ACM
  • Lógicas
    tags:
  • La lectura de la palabra
    fecha: 14/03/2020 17:21:46

Mira el título de la escala, hasta mil millones de unidades. unidad digital china tiene una característica, a diez Frente a un grupo, si está ajustado, $ 110 conjunto. Un número que se lee la primera lectura en frente de un diez millones de lecturas Baiqian, a continuación, añadir mil millones y luego leer 1-10000 de unos diez lecturas Baiqian, a continuación, volver a leer millones y luego leyó un diez celeste. Por ejemplo, 1234567890, leer primero frontal mil millones de figura, doce, a continuación, añadir millones lectura digital entre el EVA millones de dólares para tres mil de cuatro centenar de cincuenta y seis millones continuación, añadir y luego Lee críticas de Seven mil de ocho centenar de el noventa por 1234567890 lectura final. Hay algunos otros detalles.

problema

El número de preguntas básicas para practicar la pronunciación

Al enviar esta pregunta

Las limitaciones de recursos

Plazo: 1,0 s Límite de memoria: 512.0MB

Descripción del problema

El profesor Tom es enseñar un curso de postgrado en los genes, una cosa le hizo un dolor de cabeza: hay decenas de miles de pares de bases en un cromosoma, que se numeran de 0 a millones, decenas de millones, o mil millones.
  Por ejemplo, cuando los estudiantes acerca de las bases en la posición Nº 1234567009, las cifras miradas de luz son difíciles de leer con precisión.
  Por lo tanto, se necesita urgentemente un sistema, y luego, cuando entró 1234567009 vez, dará el correspondiente leer la ley:
  1234567009
  representado como Pinyin
  shi er yi san Si Qian Wu Bai Shi Liu Qi wan Qian ling DCI
  por lo que sólo tiene que leer brilla en él.
  Su tarea es ayudar a diseñar un sistema como este: Dada una cadena de dígitos, lo ayudas en la lectura y la escritura Pinyin Chino cadena de conformidad con las normas de las dos sílabas adyacentes con una celosía espacios abiertos.
  Nota debe estar en estricta conformidad con las especificaciones, tales como "10010" se lee como "yi wan Ling Yi Shi" en lugar de "yi wan ling shi", " 100000" se lee como "shi wan" en lugar de "yi shi wan", "2000 " de lectura como "er Qian" en lugar de "Liang Qian".

Formato de entrada

Hay una serie de números, el tamaño numérico de no más de 2 mil millones.

Formato de salida

Es una cadena de letras minúsculas, espacios y comas composición, que representa el número de Inglés lectura.

entrada de la muestra

1234567009

Ejemplo de salida

shi er San Yi Qian si Bai Wu Shi Liu Qian wan Qi Ling jiu

algoritmo

Después de conocimientos sobre el método de lectura se puede escribir, por lo que necesita para mantener una serie de método de lectura digital, una unidad lecturas matriz de memoria, no hay bits de necesidad, los puestos vacíos en la línea, porque por lo general no se lee una bits. A continuación, determinar el tamaño de la entrada a cien millones todavía? Si se alineará el millones (novena recíproco) de la matriz y cien millones de unidades, y las ubicaciones “yi”, a Wan (quinto desde la posición inferior) está alineado con Wan, posición “wan”, o alinear el último, una posición vacía. por ejemplo

12 3456 7890

10

3210

3210

Las unidades representativas de la segunda índice de fila de la matriz de treinta y cuatro, el caso estándar está alineado millones de lugares “yi”, y una unidad de lectura para leer una lectura digital "yi shi er yi". Nótese que la posición "yi", que se lee "yi". Este número se puede leer aquí, pero todavía hay algunos problemas, por ejemplo, 12 (sólo el principio, o 1 de cada 412 a leer) deben ser leídas como "shi er" en lugar de "yi shi er", la cuestión es buena solución, además de las condiciones de un juez, a partir de 1 unidad es "shi" cuando no lee yi ".102 debe leerse como" Bai Ling Yi er 'en lugar de' Bai Yi Ling Shi er", este problema se resuelve cero cuando el número y la unidad no está leyendo, si se encuentra en un número de dígitos no cero es cero en leer un "ling".

#include<iostream>
#include<string.h>
#include<stdio.h>
using namespace std;
int main(){	
	char s[11];
	cin>>s;
	string shu[10]={"ling","yi","er","san","si","wu","liu","qi","ba","jiu"};
	string d[6]={"","shi","bai","qian","wan","yi"};
	int len=strlen(s);
	int p;
	for(int i=0;i<strlen(s);i++)
	{
		if(strlen(s)-i>=9)
		p=9;
		else if(strlen(s)-i>=5)
		p=5;
		else
		p=1;
		int j=strlen(s)-p-i;
		if(s[i]!='0')
		{
			if(p==9) d[0]="yi ";
			else if(p==5) d[0]="wan ";
			else d[0]="";
			if(i>=1&&s[i-1]=='0') cout<<"ling"<<" ";
			if(!(i==0&&s[i]=='1'&&j==1))
			cout<<shu[s[i]-'0']<<" ";
			if(j!=0)
			cout<<d[j]<<" ";
			
		}
		if(j==0)
		{
			cout<<d[0];
			d[0]="";
		}
	}
}
Publicado 43 artículos originales · ganado elogios 1 · visitas 916

Supongo que te gusta

Origin blog.csdn.net/qq_43985303/article/details/104865587
Recomendado
Clasificación