4 votos

Algunos problemas de suma de dígitos

  1. ¿Cuál es la suma de los dígitos de todos los números del 1 al 1000000?
  2. En general, ¿cuál es la suma de todos los números entre 1 y N?
  3. f(n) es una función de conteo de todos los que se muestran en 1, 2, 3, ..., n. así que f(1)=1, f(10)=2, f(11)=4, etc. Cuando es la primera vez f(n)=n.

Así que para la primera pregunta, traté de pensar que entre 000000 y 999999, cada uno de los dígitos aparecerá el mismo número de veces, así que si puedo averiguar cuántas veces un dígito aparece sólo puedo aplicar eso a los otros 9 dígitos (a continuación, agregue 1 para el último número 1000000):

(el número de veces 1 dígito aparece)*(1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9) = ...

1 Aparece una vez entre 1 y 9 1 aparece 11 veces entre 1 y 99 1 aparece 11 * 10 + 10 = 120 veces entre 1 y 999 ...No estoy seguro de cómo encontrar el patrón

Pero en primer lugar yo no estoy tan seguro de mi enfoque, en segundo lugar no estoy seguro acerca de cómo averiguar cuántas veces un número en particular aparece, y tercero si este método no parece muy buena para la solución de la segunda parte de la pregunta.

Por último, yo tenía una pregunta similar a la primera 2 (pregunta 3) así que me agrupados con aquellos. Espero que se relacionan, y si no puedo hacer una nueva pregunta para que uno.

Gracias.

5voto

Alotor Puntos 3438

Para la pregunta tres, simplemente podemos calcular. Además de n=1, con la siguiente solución es 199981, como la generada por este PARI/GP código:

Definir $r(n)$ a ser el número de unos de los dígitos de $n$:

r(n) = nn=n;cc=0;while(nn>0,if((nn%10)==1,cc=cc+1);nn=floor(nn/10));return(cc)

A continuación, ejecute un bucle de salida y $i$ si la suma de $r(i)$ desde el 1 hasta el $i$ es igual a $i$:

yy=0;for(i=1,199981,aa=aa+r(i);if(a==i,de impresión(i)))

El resultado es este:

1 199981

Esta muestra $f(1)=1$ e $f(199981)=199981$ y que no hay otras soluciones menos de 199981.

Lo mismo para la pregunta uno, definimos $g(n)$ a ser la suma de los dígitos de $n$:

g(n) = nn=n; cc=0; while(nn>0,cc=cc+(nn % 10);nn=floor(nn/10));return(cc)

a continuación, calcular:

sum(i=1,1000000,g(i))

que produce la suma 27000001.

3voto

Mike Puntos 9379

Me voy a tomar la primera pregunta, que es la más simple de las 3. Esto hará las cosas más fácil si empezamos a mirar a la suma de los dígitos de todos los números entre 0 y 999,999. Comience por agregar líder 0s a la almohadilla de todos los números de 6 dígitos.

Consideran que el primer dígito. Si el primer dígito es un 1, hay 10 opciones para cada uno de los restantes 5 dígitos. Así que hay $10^5$ números en el rango que tienen 1 como primer dígito. Lo mismo puede decirse de cualquier otro número como el primer dígito. Así que si usted suma el primer dígito de todos los números juntos, consigue $(1+2+3+4+5+6+7+8+9)\times10^5=4,500,000$. Lo mismo es cierto para el resto de los dígitos. Por lo que la suma de todos los dígitos de todos los números entre 0 y 999,999 es $4,500,000\times 6=27,000,000$.

Contamos 0, lo que realmente no quiere, pero la suma de los dígitos de 0 es 0, por lo que no afecta a nuestra suma. Eso deja solo 1,000,000 cual tiene un dígito de la suma de 1, haciendo que nuestro final total 27,000,001.

-1voto

RFinley Puntos 1

Deje que nuestros suma de S: agregarlos hacia adelante y hacia atrás: 1 + 2 + 3 + ... +n = S y n+(n-1)+(n-2)+ ... +1 = S agregar las filas y se obtiene la suma de n términos es igual a (n+1). Este es entonces igual a n(n+1) = 2 S Por lo tanto S = n(n+1)/2

Usted puede fácilmente calcular el resultado para cualquier n.
Para n = 5 tenemos 1+2+3+4+5 = (5*6)/2 = 15
Para n = 1000000 el resultado es: 10^6(10^6+1)/2 = (5 x 10^5)(10^6+1) = 5x10^11 + 5x10^5 = 500,000,500,000

Gracias a alumno de primer grado de Carl Friedrich Gauss!!

-2voto

Nilesh Patel Puntos 1

La fórmula para esta pregunta es, X = n (n +1) / 2 X = 1000000 (1000000 +1) / 2 X = 1000000 (1000001) / 2 X = 1000000 (500000.5) X = 500,000,500,000

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X