#include<iostream.h>
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define max 100
/****/
void xuatfile(char *fn);
void docfile(char *fn,int *&a,int *&b,int &n,int &m);
void nhan(char *fn,int *&a,int *&b,int **&mt,int n,int m);
void ghifile(char *fn,int *&a,int n);
/****/
void main()
{
char *fn="bignum_in.txt";
char *fm="bignum_out.txt";
int *a=new int[max],*b=new int[max];// ab co toi da 100 chu so
int n=0,m=0;//la so chu so cua a,b doc tu file,khoi tao =0
docfile(fn,a,b,n,m);
//tao ma ram luu ket qua nhan tung chu so cua voi b
int **mt;
mt=new int *[n];
for(int i=0;i<n;i++)
mt[i]=new int [m];
nhan(fm,a,b,mt,n,m);
//thu hoi mang dong
delete a;
delete b;
for(i=0;i<m;i++)
delete []mt[i];
delete[]mt;
//xuat ket qua
xuatfile(fm);
}
/****/
void xuatfile(char *fn)
{
FILE *f;
char x;
f=fopen(fn,"r");
while(fscanf(f,"%c",&x)&&!feof(f))
cout<<x;
fclose(f);
}
void docfile(char *fn,int *&a,int *&b,int &n,int &m)
{
FILE *f;
f=fopen(fn,"r");
char x;
int i=0,j=0;
while(fscanf(f,"%c",&x)&&!feof(f))
{
if(x=='n')
while(fscanf(f,"%c",&x)&&!feof(f))
b[j++]=x-'0';
else
a[i++]=x-'0';
}
n=i;
m=j;
fclose(f);
}
void ghifile(char *fn,int *&a,int n)
{
FILE *f;
f=fopen(fn,"w");
char ch;
int i=n-1;
while(i>0&&a[i]==0)
i--;
for(;i>=0;i--)
{
ch=a[i]+'0';
fprintf(f,"%c",ch);
}
fclose(f);
}
void nhan(char *fn,int *&a,int *&b,int **&mt,int n,int m)
{
//mang kq luu ket qua tam thoi
int *kq=new int[n*m];
int k=0,i,j;
for(i=0;i<n;i++)
for(j=0;j<m;j++)
mt[i][j]=a[i]*b[j];
//xu ly ma tran
kq[k++]=mt[n-1][m-1];
i=n-1;
for(j=m-2;j>=0;j--)
{
int a=i,b=j;
kq[k]=0;
while(a>=0&&b<m)
{
kq[k]=kq[k]+mt[a][b];
a--;
b++;
}
k++;
}
if(j<0)
i--;
for(;i>0;i--)
{
int a;
kq[k]=0;
if(j=m-1&&i<=0)
m=m-1;
for(a=i,j=0;a>=0&&j<m;a--,j++)
kq[k]=kq[k]+mt[a][j];
k++;
}
kq[k]=mt[0][0];
k++;
//xu ly mang
int nho=0;
for(i=0;i<k;i++)
{
int t;
t=kq[i]+nho;
nho=t/10;
kq[i]=t%10;
}
if(nho!=0)
kq[k++]=nho;
//ghi ket qua vao file
ghifile(fn,kq,k);
}
Thứ Bảy, 18 tháng 4, 2009
Một cách nhân độc đáo (Phần 2)
Đây là đoạn code do Nhung viết lên, mọi người xem thử nhé.
Đăng ký:
Đăng Nhận xét (Atom)
Bài đăng phổ biến
-
By Andrew S. Tanenbaum Publisher: Prentice Hall Number Of Pages: 669 Publication Date: 1998-10...
-
Here is a review of the Acronis Disk Director Suite . We will attempt to resize the primary partition and create a new logical partition ...
-
Bộ Tài Liệu MCSA 2003-2008 Tiếng Việt Dung lượng: 518.53 MB Free File Hosting Made Simple - MediaFire
-
QuanTriMang.com - Có lẽ không cần phải giới thiệu nữa về ứng dụng cơ bản này, là chương trình soạn thảo v...
-
(ictexpress.com) – Không cần phân vùng ổ cứng, không sợ mất dữ liệu, cài đặt Ubuntu chỉ với 1 click chuột, gỡ bỏ dễ dàng đó là ưu điểm mà ...
-
Phân tích và thiết kế HTTT Thực thể là một đối tượng hay một khái niệm trong thế giới thực được xác định bởi tổ chức và nó tồn tại độc lập...
-
ThinkTank Đây là game mini đồ họa 3D đẹp mắt, chơi solo và đặc biệt là chơi online, dung lượng nhẹ 9.2 MB link: http://www.mediafire.com/?wb...
-
Whether you’re a front-end graphics designer or a back-end web programmer, if you’ve worked long enough in the field of creating web-based s...
-
Đã 29 năm trôi qua kể từ ngày 30/8/1982, ngày hệ thống liên lạc bằng thư điện tử (email) được cấp bản quyền. Hiện có khoảng 3,1 tỉ tà...
-
Phần hướng dẫn sau đây sử dụng cho Install Shield 2010(Version 16) Bước 1: Tạo mới file cài đặt Chạy Install Shield 16 và chọn File/New. Ch...
Không có nhận xét nào:
Đăng nhận xét