How to write a script for the following?

6 visualizaciones (últimos 30 días)
Zhuoying Lin
Zhuoying Lin el 4 de Nov. de 2017
Comentada: Zhuoying Lin el 4 de Nov. de 2017
1 x 8 + 1 = 9
12 x 8 + 2 = 98
123 x 8 + 3 = 987
1234 x 8 + 4 = 9876
12345 x 8 + 5 = 98765
123456 x 8 + 6 = 987654
1234567 x 8 + 7 = 9876543
12345678 x 8 + 8 = 98765432
123456789 x 8 + 9 = 987654321
The script should iterate from 1 to 9 to produce the expressions on the left, then perform the specified operation to get the results on the right, and finally print exactly in the format above
Thank you!

Respuesta aceptada

Stephen23
Stephen23 el 4 de Nov. de 2017
>> for k=1:9, n=sscanf(sprintf('%d',1:k),'%d'); fprintf('%d x 8 + %d = %d\n',n,k,n*8+k); end
1 x 8 + 1 = 9
12 x 8 + 2 = 98
123 x 8 + 3 = 987
1234 x 8 + 4 = 9876
12345 x 8 + 5 = 98765
123456 x 8 + 6 = 987654
1234567 x 8 + 7 = 9876543
12345678 x 8 + 8 = 98765432
123456789 x 8 + 9 = 987654321
>>
  5 comentarios
Stephen23
Stephen23 el 4 de Nov. de 2017
Editada: Stephen23 el 4 de Nov. de 2017
@Zhuoying Lin: of course, there are always other ways of doing things. You could calculate n without any strings at all, which might even be more efficient:
n = sum((k:-1:1).*10.^(0:k-1));
e.g.
>> for k=1:9, n=sum((k:-1:1).*10.^(0:k-1)); fprintf('%d x 8 + %d = %d\n',n,k,n*8+k); end
1 x 8 + 1 = 9
12 x 8 + 2 = 98
123 x 8 + 3 = 987
1234 x 8 + 4 = 9876
12345 x 8 + 5 = 98765
123456 x 8 + 6 = 987654
1234567 x 8 + 7 = 9876543
12345678 x 8 + 8 = 98765432
123456789 x 8 + 9 = 987654321
Zhuoying Lin
Zhuoying Lin el 4 de Nov. de 2017
Okay!Thank you very much!

Iniciar sesión para comentar.

Más respuestas (1)

Walter Roberson
Walter Roberson el 4 de Nov. de 2017
for loop and use fprintf()
  1 comentario
Zhuoying Lin
Zhuoying Lin el 4 de Nov. de 2017
Yes I know what it is tested on but I have no idea how to compose it

Iniciar sesión para comentar.

Etiquetas

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by