軟協學習第二週演算法題

2021-10-11 05:44:08 字數 2225 閱讀 4550

題目描述

王老師正在教簡單算術運算。細心的王老師收集了i道學生經常做錯的口算題,並且想整理編寫成乙份練習。 編排這些題目是一件繁瑣的事情,為此他想用電腦程式來提高工作效率。王老師希望儘量減少輸入的工作量,比如5+8的算式最好只要輸入5和8,輸出的結果要盡量詳細以方便後期排版的使用,比如對於上述輸入進行處理後輸出 5+8=13 以及該算式的總長度6。王老師把這個光榮的任務交給你,請你幫他程式設計實現以上功能。

輸入格式

第一行為數值i

接著的i行為需要輸入的算式,每行可能有三個資料或兩個資料。

若該行為三個資料則第乙個資料表示運算型別,a表示加法運算,b表示減法運算,c表示乘法運算,接著的兩個資料表示參加運算的運算數。

若該行為兩個資料,則表示本題的運算型別與上一題的運算型別相同,而這兩個資料為運算數。

輸出格式

輸出2*i行。對於每個輸入的算式,輸出完整的表示式及結果,第二行輸出該表示式的總長度。

題解

首先要了解題目要求運算型別由本行輸入的第乙個資料決定,而第乙個資料可能為字母』a』,『b』,'c』也可能為乙個數字;且輸出結果為a+b=c的形式。

因此設雙長整型陣列b,c,d分別儲存資料,設字元型陣列k存放運算符號,字元型陣列pan來存放判斷運算型別的字元。

long long i,j,n,b[100],c[100],d[100],q=0,e=0;

char pan[7]=,t,k[100];

分別設加,減,乘三種運算的函式

long long add(int x,int y);

long long jian(int x,int y);

long long cheng(int x,int y);

輸入需要運算的行數後,輸入判斷運算型別的字元

此處用到switch

switch(pan[0])

輸出時直接輸出事先存放的陣列

for(i=0;i設q為表示式中資料的總長度,初值為零。

如果結果為負則則將數字變為正數,q++。

if(d[i]<0)

接下來就要判斷表示式的長度

由於所有的表示式都由運算子和數字組成,運算子固定為兩個,因此只需要測出資料的的長度。

所有資料均為非負整數時,進行如下運算

if(b[i]!=0)

} else\\如果為零直接令位數++

q++;

if(c[i]!=0)

} else

q++;

if(d[i]!=0)

} else

q++;

最後輸出每個算式的位數,如果為最後乙個算式則不加換行符

if(i!=n-1)

printf("%lld\n",q+2);

else

printf("%lld",q+2);

q=0;

以下為完整**:
#include#include#includeint main()

,t,k[100];

long long add(int x,int y);

long long jian(int x,int y);

long long cheng(int x,int y);

scanf("%lld",&n);

for(i=0;iswitch(t)

} }for(i=0;iif(b[i]!=0)

} else

q++;

if(c[i]!=0)

} else

q++;

if(d[i]!=0)

} else

q++;

if(i!=n-1)

printf("%lld\n",q+2);

else

printf("%lld",q+2);

q=0;

} return 0;

}long long add(int x,int y)

long long jian(int x,int y)

long long cheng(int x,int y)

學習演算法第二題

問題 傳入整數,返回整數的反向數字。示例 輸入 123 返回 321 輸入 123 返回 321 輸入 120 返回 21 當反向整數溢位時,返回0 原本的解題方案 private int intdemo int x string str string.valueof x string newres...

第二週學習

二 字首和與差分 三 位運算 二分查詢是一種演算法,其輸入是乙個有序的元素列表 必須是有序的 查詢的元素包含在列表中,二分查詢返回其位置 int find int x if a r x return r else return 1 void find int a n int x if a l x c...

建模演算法第二週

主成分分析法就是一種運用線性代數的知識來進行資料降維的方法,它將多個變數轉換為少數幾個不相關的綜合變數來比較全面地反映整個資料集。這是因為資料集中的原始變數之間存在一定的相關關係,可用較少的綜合變數來綜合各原始變數之間的資訊。這些綜合變數稱為主成分,各主成分之間彼此不相關,即所代表的的資訊不重疊。基...