C语言 - 利用 汇编思想 写一个数的平方

题目:如标题,汇编思想的解释在文章的最后
#include 
#include 

int main(void)
{
	int a, b;

	printf("请输入一个两位数:");
	scanf("%d", &a);

	if ((a%10 > 0) && (a%10 <= 3))
	{
		b = ((a + (a%10)) * (a / 10)) * 10 + ((a%10)*(a%10));
	}
	else if ((a%10 != 5) && (a%10 != 9))
	{
		b = (((a + (a%10)) * (a / 10)) + (((a%10)*(a%10)) /10)) * 10 + (((a%10)*(a%10)) % 10);
	}
	else if (a%10 != 9)
	{
		b = (((a/10)+1) * (a/10)) * 100 + 25;
	}
	else
	{
		b = ((a+1) * (a+1)) - ((a+1) * 2) +1;
	}
	if(a%10 == 0)
	{
		(a / 10) * (a / 10) * 100;
	}

	printf("%d", b);

        printf("\n");
        system("pasue");
	return 0;
}



/*
一般两位数的平方,都可以用这样的方法来计算:用这个数加它的个位数再乘以它的十位数,将得数乘10,然后加个位数的平方即可。

  就是所谓的“本数加其尾,乘头居首位,为求平方积,再加尾乘尾。”

  个位为1、2、3的两位数的平方计算方法:
  对于个位是1、2、3的两位数,可以用这个数加它的个位数再乘以它的十位数,最后在算出的得数后面添加个位数的平方即可。
  例如:  求23的平方,将23加3得26,26再乘2得52,52后面添加3的平方9,即可得529,这就是23平方的得数。
  再比如求52的平方,可将52加2得54,再乘以5得270,后面添加2的平方4,即可得2704。

  个位是4、6、7、8的两位数。
  这一组两位数的平方计算法和第一组两位数平方的计算法相似,不同之处是因为这一组两位数个位的平方均超过10,所以在最后添加个位数的平方时须把它的十位数进到末位那个数,再把它的个位数添列到后面。
  例如:  求26的平方,26 + 6 得 32 ,32×2得 64,因为个位数6的平方是36 ,须将3进到末一位,所以,64 + 3得67 ,67后面添加6得676,这就是26的平方结果。
  再比如求48的平方,48 + 8 得56 ,56×4得224,224+6 (64的十位数)得 230 ,230后面添加 4 (64的个位数),即得 2304 。
  
以上算法看似步骤多些,但都是极易心算的,熟练之后会觉得非常的简便快捷。
  对于个位是 5 的两位数,当然也可以用上述方法心算,还有一种更简便的方法: 只须将十位数加1再乘十位数,后边再添加 25 即可得出结果。
  例如求 45 的平方,用4 乘5 (4+1)得 20 ,20 后面添加 25 ,即可得出 2025 ,就是 45 的平方。
  再如求 85 的平方,8×9 得 72,后面添加 25 ,即得 7225 。
  此法还可用于一些易算的三位数的平方,如求 105 的平方,10×11得 110 ,那么 105 的平方就是 11025 了; 求205的平方,20×21得 420 ,那么 205 的平方就是 42025 了。

  最后我们来看个位是9的两位数的平方心算法。
  个位是9的两位数计算平方时,可用“这个数加1”的平方,减去“这个数加1”的2倍,再加1即可得出结果。
  例如求 29 的平方,“ 29+1 ”的平方是 900 ,减去“ 29+1 ”的2倍60 ,得数是 840 ,再加1得 841 。
  再比如求 59 的平方,60的平方是 3600 ,减去60的2倍得3480,最后加1即得 3481 
*/


你可能感兴趣的:(C语言_基础知识)