大數加減乘

如標題,不解釋。

#include<stdio.h>
#include<string.h>
int main()
{char a[1000],b[1000];int i,s[1000],len1,len2,len,j;while(scanf("%s%s",a,b)!=EOF)  //用字符數組來儲存數{for(i=0;i<1000;i++)s[i]=0;len1=strlen(a);len2=strlen(b);for(i=len1-1,j=0;i>=0;i--,j++)  //從個位開始,將每一位都分別加到整型數組s中,下同s[j]+=a[i]-'0';for(i=len2-1,j=0;i>=0;i--,j++)s[j]+=b[i]-'0';if(len1>len2)   //尋找s的最大長度len=len1;elselen=len2;for(i=0;i<=len;i++)   //進位if(s[i]>9){s[i]-=10;s[i+1]+=1;}if(s[len]!=0) //其實就是在判斷最大一位是不是進位了len+=1;for(i=len-1;i>=0;i--)   //逆序輸出printf("%d",s[i]);printf("\n");}return 0;
}

#include<stdio.h>
#include<string.h>
int main()
{char a[1000],b[1000];int s[1000],len1,len2,i,j;while(scanf("%s %s",a,b)!=EOF){for(i=0;i<1000;i++)  //先初始化ss[i]=0;len1=strlen(a);len2=strlen(b);for(i=len1-1,j=0;i>=0;i--,j++)  //先用s儲存一下a的每一位 由個位開始{s[j]+=(a[i]-'0');}for(i=len2-1,j=0;i>=0;i--,j++)  //開始減{if(s[j]>=b[i]-'0')   //r如果該位足夠 直接減就可以{s[j]-=(b[i]-'0');}else   //如果不夠 向更高位借位{s[j]=s[j]+10-(b[i]-'0');s[j+1]-=1;}}for(i=len1-1;i>=0;i--)  //又最后開始判斷 找到第一個不是0的值 停止 并記錄下iif(s[i]!=0)break;for(j=i;j>=0;j--)  //從記錄好的那一位開始 輸出printf("%d",s[j]);printf("\n");}return 0;
}

#include<stdio.h>
#include<string.h>
int main()
{char a[1000],b[1000];int s[100000],len1,len2,len,x,i,j,i1,j1;while(scanf("%s%s",a,b)!=EOF)  //輸入{for(i=0;i<100000;i++)s[i]=0;len1=strlen(a);len2=strlen(b);len=len1+len2;  //結果最大長度for(i=len1-1,i1=0;i>=0;i--,i1++) //開始模擬乘法{for(j=len2-1,j1=0;j>=0;j--,j1++)  //在這里我們將個位下標記為0,十位記為1,向上依次類推,通過計算我們可以得知當這兩個數中任取兩位相乘時,計算的結果最多占據這兩位數下標和那一位以及更高一位{x=(a[i]-'0')*(b[j]-'0');  //依據上面的推論就可以對數組s中的每一位值進行賦值了s[i1+j1+1]+=(x/10);s[i1+j1]+=(x%10);}}for(i=0;i<=len;i++)  //因為還沒有進位,可能會出現某一位超過十的情況,所以接下來進位if(s[i]>=10){s[i+1]+=s[i]/10;s[i]%=10;}for(i=len+1;i>=0;i--)  //由最高位開始向下遍歷,遍歷出第一個不為0的數,記錄該下標if(s[i]!=0)break;if(i==-1)   //如果遍歷到最后都是0,直接輸出0就可以,一開始跪在了這,忘記乘0的情況了printf("0");else  //如果不是,從高位向地位開始輸出即可{for(j=i;j>=0;j--)printf("%d",s[j]);}printf("\n");}return 0;
}

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/444778.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/444778.shtml
英文地址,請注明出處:http://en.pswp.cn/news/444778.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

在GCC和Visual Studio中使用hash_map

熟悉STL或熟悉ACM/ICPC的話&#xff0c;其中的set, map, multiset, multimap一定用過無數次了&#xff0c;它們都是用平衡二叉樹&#xff08;紅黑樹&#xff09;實現的&#xff0c;復雜度為O(lgn)。我們也知道set, map可以通過哈希來實現&#xff0c;復雜度只有O(1)&#xff0c…

C++(21)--Astah uml 畫C++類圖

Astah uml 畫C類圖1.安裝2.使用《老九學堂C課程》《老九學堂C課程》詳情請到B站搜索《老九零基礎學編程C入門》-------------簡單的事情重復做&#xff0c;重復的事情用心做&#xff0c;用心的事情堅持做(老九君)--------------- ASTAH&#xff1a;類圖工具&#xff0c;用于理…

redis3.0.0 集群安裝詳細步驟

Redis集群部署文檔(centos6系統) &#xff08;要讓集群正常工作至少需要3個主節點&#xff0c;在這里我們要創建6個redis節點&#xff0c;其中三個為主節點&#xff0c;三個為從節點&#xff0c;對應的redis節點的ip和端口對應關系如下&#xff09; 127.0.0.1:7000 127.0.0.1:7…

Redis集群添加節點

Redis集群添加節點 1&#xff1a;首先把需要添加的節點啟動 cd /usr/local/cluster/ mkdir 7006 cp /usr/local/cluster/redis.conf /usr/local/cluster/7006/ cd /usr/local/cluster/7006/ vi redis.conf ##修改redis.conf中的port參數的值為7006 redis-server redis.c…

PRML(2)--緒論(下)模型選擇、緯度災難、決策論、信息論

PRML緒論1.3 模型選擇1.4 緯度災難1.5 決策論1.5.1最小錯誤分率1.5.2最小化期望損失1.5.3拒絕選項1.5.4推斷和決策1.5.5 回歸問題的損失函數1.6 信息論1.3 模型選擇 模型過復雜會造成過擬合問題&#xff0c;需要通過一些技術來降低模型的復雜度。 就最大似然而言&#xff0c;可…

leetcode112 路徑總和

給定一個二叉樹和一個目標和&#xff0c;判斷該樹中是否存在根節點到葉子節點的路徑&#xff0c;這條路徑上所有節點值相加等于目標和。 說明: 葉子節點是指沒有子節點的節點。 示例: 給定如下二叉樹&#xff0c;以及目標和 sum 22&#xff0c; 5 / \ …

關于游戲架構設計的一些整理吧

一個大型的網落游戲服務器應該包含幾個模塊:網絡通訊,業務邏輯,數據存儲,守護監控(不是必須),其中業務邏輯可能根據具體需要,又劃分為好幾個子模塊。 這里說的模塊可以指一個進程,或者一個線程方式存在,本質上就是一些類的封裝。

linux時間輪 Timing-Wheel的實現

過一段時間上傳更新自己的心得&#xff0c;以及linux的時間輪實現 現在git上傳自己的C代碼 gitgithub.com:pbymw8iwm/Timing-Wheel.git

leetcode128 最長連續序列

給定一個未排序的整數數組&#xff0c;找出最長連續序列的長度。 要求算法的時間復雜度為 O(n)。 示例: 輸入: [100, 4, 200, 1, 3, 2] 輸出: 4 解釋: 最長連續序列是 [1, 2, 3, 4]。它的長度為4 思路&#xff1a;map記錄某個連續序列端點的最大長度。 對于數字i&#xff…

C++(22)--繼承和派生

繼承和派生1.基本概念2.實現公有繼承3.私有繼承的例子4. 繼承和組合《老九學堂C課程》《C primer》學習筆記。《老九學堂C課程》詳情請到B站搜索《老九零基礎學編程C入門》-------------簡單的事情重復做&#xff0c;重復的事情用心做&#xff0c;用心的事情堅持做(老九君)----…

Python- 解決PIP下載安裝速度慢

對于Python開發用戶來講&#xff0c;PIP安裝軟件包是家常便飯。但國外的源下載速度實在太慢&#xff0c;浪費時間。而且經常出現下載后安裝出錯問題。所以把PIP安裝源替換成國內鏡像&#xff0c;可以大幅提升下載速度&#xff0c;還可以提高安裝成功率。 國內源&#xff1a; …

leetcode102 二叉樹的層次遍歷

給定一個二叉樹&#xff0c;返回其按層次遍歷的節點值。 &#xff08;即逐層地&#xff0c;從左到右訪問所有節點&#xff09;。 例如: 給定二叉樹: [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7 返回其層次遍歷結果&#xff1a; [ [3], [9,20], [15…

Windows Git客戶端搭建

最近開始做Windows 開發&#xff0c;所以找了一些windows下安裝git的教程 本文環境&#xff1a; 操作系統&#xff1a;Windows XP SP3 Git客戶端&#xff1a;TortoiseGit-1.8.16.0-32bit 一、安裝Git客戶端 全部安裝均采用默認&#xff01; 1. 安裝支撐軟件 msysgit: http://ms…

C++(23)--多態性與虛函數

多態性與虛函數1.靜態多態-重載2.動態多態-重寫2.1 向上轉換/向下轉換3.虛函數的工作原理4.純虛函數和抽象類5.補充項目(都市浮生記)-卒《老九學堂C課程》學習筆記。《老九學堂C課程》詳情請到B站搜索《老九零基礎學編程C入門》-------------簡單的事情重復做&#xff0c;重復的…

如何在Appscale下發布自己的應用(一)

本篇文章主要講如何在本地搭建appscale環境。由于國內的信息資源有限&#xff0c;很多重要的論壇被墻了&#xff0c;所以遇到不少麻煩&#xff0c;由于最近一段時間vpn也被封掉了&#xff0c;我只能通過特殊渠道方法來翻墻查閱資料&#xff0c;走了不少彎路。 1.先說系統和環境…

總結了線程安全性的二十四個精華問題

1、對象的狀態&#xff1a;對象的狀態是指存儲在狀態變量中的數據&#xff0c;對象的狀態可能包括其他依賴對象的域。在對象的狀態中包含了任何可能影響其外部可見行為的數據。 2、一個對象是否是線程安全的&#xff0c;取決于它是否被多個線程訪問。這指的是在程序中訪問對象的…

如何在Appscale下發布自己的應用(二)

本文開始講如何發布自己的app應用到appscle上 建好appscle網站后&#xff0c;可以在命令行通過 appscle deploy apppathname 來發布自己應用。 除了用命令行提交應用之外&#xff0c;還可以通過appscale的網站直接提交&#xff0c;選擇 upload application->選擇上傳文件-&g…

Python模塊(7)-SciPy 簡易使用教程

SciPy 簡易使用教程1. 符號計算2. 函數向量化3. 波形處理scipy.signal3.1 濾波器3.2 波峰定位基于numpy的一個高級模塊&#xff0c;為數學&#xff0c;物理&#xff0c;工程等方面的科學計算提供無可替代的支持。 做重要的思想是&#xff1a;符號計算和函數向量化 1. 符號計算…

Xcode的Architectures和Valid Architectures的區別

目錄[-] Xcode的Architectures和Valid Architectures的區別 Architectures Valid Architectures 原因解釋如下&#xff1a; 參考1&#xff1a; 所有IOS設備詳情列表 List of iOS devices - Wikipedia, the free encyclopedia 參考2&#xff1a; iOS 7: 如何為iPhone 5S編譯64位…

Python模塊(8)-sklearn 簡易使用教程

sklearn 簡易使用教程1.scikit-learn的數據集2.scikit-learn 的訓練和預測scikit-learn 是在Numpy,SciPy,Matplotlib三個模塊上編寫的&#xff0c;數據挖掘和數據分析的一個簡單有效的工具。scikit-learn包括6大功能&#xff1a;分類&#xff0c;回歸&#xff0c;聚類&#xff…