作为大一初识C语言的我,刚看到这个题目的时候有点不知所措,花了一个小时写了出来,到了学期末越来越上手之后用简便的逻辑把这道题目写了出来。
第一版:
#include<stdio.h>
int main()
{
int i = 0, j = 0;
for (i = 1; i <= 9; i++)
{
printf("1*%d=%-2d", i, 1*i);
if (2 == i)
printf("2*%d=%-3d", i, 2 * i);
if (3 == i)
{
for(j = 2; j < i; j++)
printf("%d*3=%-3d", j, 3 * j);
printf("%d*%d=%-3d", j, j, j * j);
}
if (4 == i)
{
for (j = 2; j < i; j++)
printf("%d*4=%-3d", j, 4 * j);
printf("%d*%d=%-3d", j, j, j * j);
}
if (5 == i)
{
for (j = 2; j < i; j++)
printf("%d*5=%-3d", j, 5 * j);
printf("%d*%d=%-3d", j, j, j * j);
}
if (6 == i)
{
for (j = 2; j < i; j++)
printf("%d*6=%-3d", j, 6 * j);
printf("%d*%d=%-3d", j, j, j * j);
}
if (7 == i)
{
for (j = 2; j < i; j++)
printf("%d*7=%-3d", j, 7 * j);
printf("%d*%d=%-3d", j, j, j * j);
}
if (8 == i)
{
for (j = 2; j < i; j++)
printf("%d*8=%-3d", j, 8 * j);
printf("%d*%d=%-3d", j, j, j * j);
}
if (9 == i)
{
for (j = 2; j < i; j++)
printf("%d*9=%-3d", j, 9 * j);
printf("%d*%d=%-3d", j, j, j * j);
}
printf("\n");
}
return 0;
}
第二版:
#include<stdio.h>
int main()
{
int i = 0;
int j = 0;
for (i = 1; i <= 9; i++)
{
printf("1*%d=%-2d", i, 1 * i);
for (j = 2; j <= i; j++)
printf("%d*%d=%-3d", j, i, j * i);
printf("\n");
}
return 0;
}
总结:
看到题目先分析其涉及的知识点,从三维立体多角度去分析问题,力求多种算法求解,在从中选择最优算法解决,既能锻炼自己的逻辑思维能力,又能以尽可能最佳的算法解决问题。