Dado no más de dos 9
enteros positivos a
y se n
requiere escribir un programa que busque a+aa+aaa++⋯+aa⋯a(n个a)
la suma.
Formato de entrada:
En la fila de entrada dada no hay más que 9
un entero positivo a
y n
.
Formato de salida:
s = 对应的和
Salida en el formato de " " en una línea .
Muestra de entrada:
2 3
Salida de muestra:
s = 246
Código:
# include <stdio.h>
# include <stdlib.h>
int main() {
int a,n,s = 0,i,temp = 0;
scanf("%d %d",&a,&n);
for (i=1;i<=n;i++) {
// aa = a * 10 + a,aaa = aa * 10 + a
temp *= 10;
temp += a;
s += temp;
}
printf("s = %d",s);
return 0;
}
Enviar captura de pantalla:
Ideas de resolución de problemas:
Esta pregunta es un poco interesante, puedes seguir mis pensamientos y repetirla:
- Por
2 3
ejemplo,s = 2 + 22 + 222
puedes encontrar que el siguiente número es 10 veces el número anterior + ese número (¿por qué no 11 veces? Puedes ver222 = 22 * 10 +2
, entonces no se puede escribir222 = 22 * 11
) - Luego podemos definir una variable
temp
para almacenar el valor de cada cambio, inicializada a 0 porque de esta maneratemp += a
no tendremos otro valor antes del primer nivel de bucle !