編程里乘法
1. 編程語言能做出來九九乘法表嗎
當然能,以C為例發一個給你看
main()
{
int i,j;
for(i=1;i<=9;i++)
{
for(j=1;j<=i;j++)
{
printf("%d*%d=%d ",i,j,i*j);
}
printf(" ");
}
}
2. c++編程 多項式的乘法
#include <iostream>
#include<algorithm>
using namespace std;
class Polynomial;
class Term{//多項式的每一項
friend Polynomial;
public:
float coef;//系數
int exp;//指數
};
class Polynomial{//多項式類
friend ostream & operator<<(ostream &o,const Polynomial & poly);
public:
Polynomial();
Polynomial(const Polynomial & poly);
~Polynomial();
Polynomial operator+(const Polynomial & poly);//多項式加法
Polynomial operator*(const Polynomial & poly);//多項式乘法
float Eval(float x);//數x代入多項式求值
void NewTerm(float coef,int exp);//添加一項,若有相同的指數項,則合並
private:
void insertTerm(const Term & term);//項的有序插入
private:
Term *termArray;//非零系數項數組
int capacity;//數組大小
int terms;//非零系數的項數
};
Polynomial::Polynomial()
{
this->terms=0;
this->capacity=10;
termArray=new Term[this->capacity];
}
Polynomial::Polynomial(const Polynomial & b)
{
this->terms=0;
this->capacity=b.capacity;
termArray = new Term[this->capacity];
for(int i=0;i<b.terms;i++){
NewTerm(b.termArray[i].coef,b.termArray[i].exp);
}
}
Polynomial::~Polynomial()
{
delete [] termArray;
}
Polynomial Polynomial::operator+(const Polynomial & b)
{
Polynomial c;
int aPos=0;
int bPos=0;
while(aPos<terms && bPos<b.terms){
if(termArray[aPos].exp == b.termArray[bPos].exp){
float coef=termArray[aPos].coef+b.termArray[bPos].coef;
if(coef)c.NewTerm(coef,termArray[aPos].exp);
aPos++;bPos++;
}else if(termArray[bPos].exp < b.termArray[bPos].exp){
c.NewTerm(b.termArray[bPos].coef,b.termArray[bPos].exp);
bPos++;
}else{
c.NewTerm(termArray[aPos].coef,termArray[aPos].exp);
aPos++;
}
}
while (aPos < terms){
c.NewTerm(termArray[aPos].coef,termArray[aPos].exp);
aPos++;
}
while (bPos < b.terms){
c.NewTerm(b.termArray[bPos].coef,b.termArray[bPos].exp);
bPos++;
}
return c;
}
Polynomial Polynomial::operator*(const Polynomial & b)
{
Polynomial c;
for(int i=0; i<terms; i++){
for(int j=0; j<b.terms; j++){
float coef = termArray[i].coef*b.termArray[j].coef;
int exp = termArray[i].exp + b.termArray[j].exp;
c.NewTerm(coef,exp);
}
}
return c;
}
void Polynomial::NewTerm(float coef, int exp)
{
if(terms == capacity){
capacity *= 2;
Term *tmp = new Term[capacity];
(termArray,termArray+terms,tmp);
delete [] termArray;
termArray = tmp;
}
Term ATerm;
ATerm.coef=coef;ATerm.exp=exp;
insertTerm(ATerm);
}
void Polynomial::insertTerm(const Term & term)
{
int i;
for(i=0; i<terms && term.exp<termArray[i].exp; i++){
}
if(term.exp == termArray[i].exp){
termArray[i].coef += term.coef;
if(!termArray[i].coef){
for(int j=i; j<terms-1; j++)
termArray[j]= termArray[j+1];
terms--;
}
}else{
for(int j=terms-1; j>=i;j--)
termArray[j+1]=termArray[j];
termArray[i] = term;
terms++;
}
}
float Polynomial::Eval(float x)
{
float res=0.0;
for(int i=0;i<terms; i++){
res += termArray[i].coef * pow(x,termArray[i].exp);
}
return res;
}
ostream & operator<<(ostream & o,const Polynomial & poly)
{
for(int i=0;i<poly.terms-1;i++){
o<<poly.termArray[i].coef<<"x^"<<poly.termArray[i].exp<<" + ";
}
o<<poly.termArray[poly.terms-1].coef<<"x^"<<poly.termArray[poly.terms-1].exp;
return o;
}
void test()
{
Polynomial p1;
p1.NewTerm(3,2);
p1.NewTerm(2.1,3);
Polynomial p2;
p2.NewTerm(1,2);
p2.NewTerm(1,3);
p2.NewTerm(5,1);
cout<<"("<<p1<<") + ("<<p2<<") = "<<p1+p2<<endl;
cout<<"F(x=2) = "<<(p1+p2).Eval(2)<<endl;
cout<<"("<<p1<<") * ("<<p2<<") = "<<p1 * p2<<endl;
}
int main()
{
test();
system("Pause");
return 0;
}
#include <iostream>
#include<algorithm>
using namespace std;
class Polynomial;
class Term{//多項式的每一項
friend Polynomial;
public:
float coef;//系數
int exp;//指數
};
class Polynomial{//多項式類
friend ostream & operator<<(ostream &o,const Polynomial & poly);
public:
Polynomial();
Polynomial(const Polynomial & poly);
~Polynomial();
Polynomial operator+(const Polynomial & poly);//多項式加法
Polynomial operator*(const Polynomial & poly);//多項式乘法
float Eval(float x);//數x代入多項式求值
void NewTerm(float coef,int exp);//添加一項,若有相同的指數項,則合並
private:
void insertTerm(const Term & term);//項的有序插入
private:
Term *termArray;//非零系數項數組
int capacity;//數組大小
int terms;//非零系數的項數
};
Polynomial::Polynomial()
{
this->terms=0;
this->capacity=10;
termArray=new Term[this->capacity];
}
Polynomial::Polynomial(const Polynomial & b)
{
this->terms=0;
this->capacity=b.capacity;
termArray = new Term[this->capacity];
for(int i=0;i<b.terms;i++){
NewTerm(b.termArray[i].coef,b.termArray[i].exp);
}
}
Polynomial::
~Polynomial()
{
delete [] termArray;
}
Polynomial Polynomial::operator+(const Polynomial & b)
{
Polynomial c;
int aPos=0;
int bPos=0;
while(aPos<terms && bPos<b.terms){
if(termArray[aPos].exp == b.termArray[bPos].exp){
float coef=termArray[aPos].coef+b.termArray[bPos].coef;
if(coef)c.NewTerm(coef,termArray[aPos].exp);
aPos++;bPos++;
}else if(termArray[bPos].exp < b.termArray[bPos].exp){
c.NewTerm(b.termArray[bPos].coef,b.termArray[bPos].exp);
bPos++;
}else{
c.NewTerm(termArray[aPos].coef,termArray[aPos].exp);
aPos++;
}
}
while (aPos < terms){
c.NewTerm(termArray[aPos].coef,termArray[aPos].exp);
aPos++;
}
while (bPos < b.terms){
c.NewTerm(b.termArray[bPos].coef,b.termArray[bPos].exp);
bPos++;
}
return c;
}
Polynomial Polynomial::operator*(const Polynomial & b)
{
Polynomial c;
for(int i=0; i<terms; i++){
for(int j=0; j<b.terms; j++){
float coef = termArray[i].coef*b.termArray[j].coef;
int exp = termArray[i].exp + b.termArray[j].exp;
c.NewTerm(coef,exp);
}
}
return c;
}
void Polynomial::NewTerm(float coef, int exp)
{
if(terms == capacity){
capacity *= 2;
Term *tmp = new Term[capacity];
(termArray,termArray+terms,tmp);
delete [] termArray;
termArray = tmp;
}
Term ATerm;
ATerm.coef=coef;ATerm.exp=exp;
insertTerm(ATerm);
}
void Polynomial::insertTerm(const Term & term)
{
int i;
for(i=0; i<terms && term.exp<termArray[i].exp; i++){
}
if(term.exp == termArray[i].exp){
termArray[i].coef += term.coef;
if(!termArray[i].coef){
for(int j=i; j<terms-1; j++)
termArray[j]= termArray[j+1];
terms--;
}
}else{
for(int j=terms-1; j>=i;j--)
termArray[j+1]=termArray[j];
termArray[i] = term;
terms++;
}
}
float Polynomial::Eval(float x)
{
float res=0.0;
for(int i=0;i<terms; i++){
res += termArray[i].coef * pow(x,termArray[i].exp);
}
return res;
}
ostream & operator<<(ostream & o,const Polynomial & poly)
{
for(int i=0;i<poly.terms-1;i++){
o<<poly.termArray[i].coef<<"x^"<<poly.termArray[i].exp<<" + ";
}
o<<poly.termArray[poly.terms-1].coef<<"x^"<<poly.termArray[poly.terms-1].exp;
return o;
}
void test()
{
Polynomial p1;
p1.NewTerm(3,2);
p1.NewTerm(2.1,3);
Polynomial p2;
p2.NewTerm(1,2);
p2.NewTerm(1,3);
p2.NewTerm(5,1);
cout<<"("<<p1<<") + ("<<p2<<") = "<<p1+p2<<endl;
cout<<"F(x=2) = "<<(p1+p2).Eval(2)<<endl;
cout<<"("<<p1<<") * ("<<p2<<") = "<<p1 * p2<<endl;
}
int main()
{
test();
system("Pause");
return 0;
}
測試結果:
Cpp代碼
(2.1x^3 + 3x^2) + (1x^3 + 1x^2 + 5x^1) = 3.1x^3 + 4x^2 + 5x^1
F(x=2) = 50.8
(2.1x^3 + 3x^2) * (1x^3 + 1x^2 + 5x^1) = 2.1x^6 + 5.1x^5 + 13.5x^4 + 15x^3
請按任意鍵繼續. . .
(2.1x^3 + 3x^2) + (1x^3 + 1x^2 + 5x^1) = 3.1x^3 + 4x^2 + 5x^1
F(x=2) = 50.8
(2.1x^3 + 3x^2) * (1x^3 + 1x^2 + 5x^1) = 2.1x^6 + 5.1x^5 + 13.5x^4 + 15x^3
請按任意鍵繼續. . .
3. 如何用c語言編程序:九九乘法表
九九乘法表共9行9列,重點考察for循環的掌握情況。下面給出了輸出完整乘法表、右上、右下、左上、左下乘法表的代碼。
1、【代碼一】輸出完整的三角形:
#include <stdio.h>
int main() {
int i,j; // i, j控制行或列
for(i=1;i<=9;i++) {
for(j=1;j<=9;j++)
// %2d 控制寬度為兩個字元,且右對齊;如果改為 %-2d 則為左對齊
// 為tab縮進
printf("%d*%d=%2d ", i, j, i*j);
printf(" ");
}
return 0;
}
4. 編程里列印乘法口訣表怎麼打
樓上的第一個是BASIC的,第二個是C 的都沒有你要的PASCAL。我給你寫一個。列印三角乘法表
var
i,j:integer;
begin
for i:=1 to 9 do
begin
for j:=1 to i do
write(j,'*',i,'=',i*j,' ');
writeln;
end;
end.
5. 計算機編程中矩陣乘法有什麼用
線性代數是計算機特別是圖形學中很重要的數學工具。3D游戲和CAD中的三維透視,科學計算中的方程組求解都需要用矩陣,人工智慧中的人腦模型,都需要用矩陣演算法中的加法,減法,乘法和除法(左除和右除)
6. 編程中九九乘法表
C語言輸出九九乘法表,主要運用for循環進行控制輸出。
需要注意的是:在何時需要加空格,何時需要換行。
#include<stdio.h>
void main()
{
int i=1,j=1;
for(i=1;i<=9;i++) // 控制行,一共9行
for(j=1;j<=i;j++) // 控制各行的列數
{
printf("%d*%d=%d",j,i,i*j); // 輸出乘法表各項內容
if(i!=j) printf("\t"); // 相鄰兩項直接加空格
if(i==j) printf("\n"); // 控制列數
}
}
7. 用c編程乘法表
/*
shellwin231986
好好看看你的程序……^_^
logo0775,你是說我i
=
0那塊吧,不影響的,有j<=i呢,不過確實是沒看清,我狡辯一下而已,寫成i
=
1
最好。
樓主,把#define
DD
這行的DD分別換成AA、BB、CC、DD看看結果。
另外,這個談不上什麼C與C++的區別,差不多都是這樣做的,頂多在輸出上可以用C++的標准庫的一些函數而已,這個你就自己去改吧。
*/
#include
"stdio.h"
#define
DD
#ifdef
AA
int
main()
{
int
i
,
j;
for(
i
=
1
;
i
<
10
;
i++
)
{
for(
j
=
1
;
j
<=
i
;
j++
)
{
printf(
"%d*%d=%2d
"
,
j
,
i
,
i
*
j
);
}
printf(
"\n"
);
}
return
0;
}
#endif
#ifdef
BB
int
main()
{
int
i
,
j;
for(
i
=
1
;
i
<
10
;
i++
)
{
for(
j
=
i
;
j
<
10
;
j++
)
{
printf(
"%d*%d=%2d
"
,
i
,
j
,
i
*
j
);
}
printf(
"\n"
);
}
return
0;
}
#endif
#ifdef
CC
int
main()
{
int
i
,
j;
for(
i
=
1
;
i
<
10
;
i++
)
{
for(
j
=
1
;
j
<
10
;
j++
)
{
if(
j
<
i
)
{
printf(
"
"
);
}
else
{
printf(
"%d*%d=%2d
"
,
i
,
j
,
i
*
j
);
}
}
printf(
"\n"
);
}
return
0;
}
#endif
#ifdef
DD
int
main()
{
int
i
,
j;
for(
i
=
1
;
i
<
10
;
i++
)
{
for(
j
=
1
;
j
<
10
;
j++
)
{
if(
10
-
j
>
i
)
{
printf(
"
"
);
}
else
{
printf(
"%d*%d=%2d
"
,
i
+
j
-
9,
i
,
i
*
(
i
+
j
-
9
)
);
}
}
printf(
"\n"
);
}
return
0;
}
#endif
8. c語言編程「乘法口訣表」.
/*
看了同學們的幾個答案,簡直...
奉上我的源碼給大家,那個jplus變數才是這個小程序的點睛之處...
*/
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>//我需要使用其中的getch函數讓程序暫停
intmain()
{
system("color4e");//純屬為了養眼
printf("利用雙重循環輸出乘法口決表 ");//程序介紹
inti,j;//兩個變數分別控制行與列輸出
intjplus=2;//在行確定時,控制到底需要輸出多少列
for(i=1;i<10;i++)//行控制
{
for(j=1;j<jplus;j++)//列控制
{
printf("%d×%d=%d ",j,i,i*j);
}
printf(" ");
jplus++;//每行輸出完畢後,下一行的列數都會加1
}
printf(" 輸出完畢,按任意鍵退出...");
getch();//程序暫停以免一閃而過
return0;
}
/*
如果實在討厭那個jplus,你還可以用i+1來代替它
寫成如下的緊湊一點的格式,同樣OK
*/
intmain(){
inti=0;
intj=0;
for(i=1;i<10;i++)
{
for(j=1;j<i+1;j++)
{
printf("%dx%d=%d ",j,i,i*j);
}
printf(" ");
}
return0;
}
9. C語言編程九九乘法表
九九乘法表共9行9列,重點考察for循環的掌握情況。下面給出了輸出完整乘法表、右上、右下、左上、左下乘法表的代碼。
1、【代碼一】輸出完整的三角形:
#include <stdio.h>
int main() {
int i,j; // i, j控制行或列
for(i=1;i<=9;i++) {
for(j=1;j<=9;j++)
// %2d 控制寬度為兩個字元,且右對齊;如果改為 %-2d 則為左對齊
// 為tab縮進
printf("%d*%d=%2d ", i, j, i*j);
printf(" ");
}
return 0;
}
10. 乘法在c語言中怎麼表示
估計你的意思是說C語言編譯成匯編語言之後乘法怎麼表示吧,因為在匯編中加法確實是用ADD表示的,下面給你運算符表:
ADD 加法.
ADC 帶進位加法.
INC 加 1.
AAA 加法的ASCII碼調整.
DAA 加法的十進制調整.
SUB 減法.
SBB 帶借位減法.
DEC 減 1.
NEC 求反(以 0 減之).
CMP 比較.(兩操作數作減法,僅修改標志位,不回送結果).
AAS 減法的ASCII碼調整.
DAS 減法的十進制調整.
MUL 無符號乘法.
IMUL 整數乘法.
以上兩條,結果回送AH和AL(位元組運算),或DX和AX(字運算),
AAM 乘法的ASCII碼調整.
DIV 無符號除法.
IDIV 整數除法.
以上兩條,結果回送:
商回送AL,余數回送AH, (位元組運算);
或 商回送AX,余數回送DX, (字運算).
AAD 除法的ASCII碼調整.
CBW 位元組轉換為字. (把AL中位元組的符號擴展到AH中去)
CWD 字轉換為雙字. (把AX中的字的符號擴展到DX中去)
CWDE 字轉換為雙字. (把AX中的字元號擴展到EAX中去)
CDQ 雙字擴展. (把EAX中的字的符號擴展到EDX中去)