10000 의 곱 은 얼마 입 니까?

973 단어 알고리즘
우 리 는 우선 123 * 9 를 명확 하 게 계산 해 야 합 니 다. 어떻게 계산 합 니까?
3*9=27,  2,   7
2*9=18,18+  2=20,    2,  0
1*9=9,9+2=11,  11
    1107

주요 사상 a * b: 우 리 는 a 의 각 자릿수 를 배열 에 저장 한 다음 에 각각 b 를 곱 하여 진 위 를 연산 하면 된다.
  123*21,      an[1]=3,an[2]=2,an[3]=1,
       , an[1]*21=63,  6,  3,   an[1]=3,
an[2]*21=42,42+  6=48,    4,  8,   an[2]=8,
an[3]*21=21,21+  4=25,   25,   an[3]=5,an[4]=2
    2583
#include
int main(void)
{
	int n;
	n=11;
	int ans[10000]={0};//     ,        
	int size=1;//    ,     
	int bit=0;//    
	ans[1]=1; 
	for(int i=2;i<=n;i++)//   n 
	{
		for(int j=1;j<=size;j++)//    i       ,           
		{
			int tep=ans[j]*i+bit; 
			bit=tep/10; //    
			ans[j]=tep%10; //      
		}
		while(bit)  //            
		{
			ans[++size]=bit%10;
			bit/=10;
		}
	}
	for(int i=size;i>=1;i--)//  
	{
		printf("%d",ans[i]);
	}
	printf("
"); }

레 퍼 런 스

좋은 웹페이지 즐겨찾기