PAT 乙級 1017 (方法 + 程式碼)
1017 A除以B (20 分)
本題要求計算 A/B,其中 A 是不超過 1000 位的正整數,B 是 1 位正整數。你需要輸出商數 Q 和餘數 R,使得 A=B×Q+R 成立。
輸入格式:
輸入在一行中依次給出 A 和 B,中間以 1 空格分隔。
輸出格式:
在一行中依次輸出 Q 和 R,中間以 1 空格分隔。
輸入樣例:
123456789050987654321 7
輸出樣例:
17636684150141093474 3
解題思路:
C++版
按照手算除法的思路算,注意只有一位的這種情況
#include<iostream>//20.05
#include<stdlib.h>
#include <string>
using namespace std;
int main()
{
string ch;
int num;
cin>>ch>>num;
int num1,num2 = 0,num3;
/* if(((ch[0] - '0')/num != 0 && ch.length()>1) || ch.length()==1 )
cout<<(ch[0] - '0')/num;
num2 = (ch[0] - '0')%num;*/
for(int i = 0; i < ch.length(); i++ )
{
num3 = (ch[i] - '0') + num2 * 10;
num1 = num3 / num;
num2 = num3 % num;
if(i == 0 && num1 == 0)//忽略了個位數的情況 比如7/8
{
if(ch.length() == 1)
cout<<num1;
}
else
cout<<num1;
}
cout<<' '<<num2;
system("pause");
return 0;
}
相關推薦
PAT 乙級 1017 (方法 + 程式碼)
1017 A除以B (20 分) 本題要求計算 A/B,其中 A 是不超過 1000 位的正整數,B 是 1 位正整數。你需要輸出商數 Q 和餘數 R,使得 A=B×Q+R 成立。 輸入格式: 輸入在一行中依次給出 A 和 B,中間以 1 空格分隔。 輸出格式:
PAT乙級 1005(方法 + 程式碼)
1005 繼續(3n+1)猜想 (25 分) 卡拉茲(Callatz)猜想已經在1001中給出了描述。在這個題目裡,情況稍微有些複雜。 當我們驗證卡拉茲猜想的時候,為了避免重複計算,可以記錄下遞推過程中遇到的每一個數。例如對 n=3 進行驗證的時候,我們需要計算
PAT 乙級 1012 (方法 + 程式碼)
1012 數字分類 (20 分) 給定一系列正整數,請按要求對數字進行分類,並輸出以下 5 個數字: A1 = 能被 5 整除的數字中所有偶數的和; A2 = 將被 5 除後餘 1 的數字按給出順序進行交錯求和,即計算 n1 −n2+n3 −n4
PAT 乙級 1016 (方法 + 程式碼)
1016 部分A+B (15 分) 正整數 A 的“DA(為 1 位整數)部分”定義為由 A 中所有 DA組成的新整數 PA 。例如:給定 A=3862767,DA =6,則 A 的“6 部分”PA 是 66,因為 A 中有 2 個 6。 現給定
PAT乙級1004(方法+程式碼)
1004 成績排名 (20 分) 讀入 n(>0)名學生的姓名、學號、成績,分別輸出成績最高和成績最低學生的姓名和學號。 輸入格式: 每個測試輸入包含 1 個測試用例,格式為 第 1 行:正整數 n 第 2 行:第 1 個學生的姓名 學號 成績 第 3 行
PAT 乙級 1021 (方法 + 程式碼)
1021 個位數統計 (15 分) 給定一個k位整數N = dk-110k-1 + … + d1101 + d0 (0<=di<=9, i=0,…,k-1, dk-1>0),請編寫程式統計每種不同的個位數字出現的次數。例如: 給定N = 100
PAT 乙級 1018 (方法 + 程式碼)
1018 錘子剪刀布 (20 分) 大家應該都會玩“錘子剪刀布”的遊戲 現給出兩人的交鋒記錄,請統計雙方的勝、平、負次數,並且給出雙方分別出什麼手勢的勝算最大。 輸入格式: 輸入第 1 行給出正整數 N(≤10 5 ),即雙方交鋒的次數。隨後 N 行,每
PAT (Basic)乙級---1017(20 分) A除以B
本題要求計算 A/B,其中 A 是不超過 1000 位的正整數,B 是 1 位正整數。你需要輸出商數 Q 和餘數 R,使得 A=B×Q+R 成立。 輸入格式: 輸入在一行中依次給出 A 和 B,中間以 1 空格分隔。 輸出格式: 在一行中依次輸出 Q 和 R,中間以
PAT乙級——1083(輔助空間)java實現
題目:是否存在相等的差 (20 分) 給定 N 張卡片,正面分別寫上 1、2、……、N,然後全部翻面,洗牌,在背面分別寫上 1、2、……、N。將每張牌的正反兩面數字相減(大減小),得到 N 個非負差值,其中是否存在相等的差? 輸入格式: 輸入第一行給出一個正整數 N(2 ≤ N
PAT乙級——1081(字串判斷)Java實現
題目:檢查密碼 (15 分) 本題要求你幫助某網站的使用者註冊模組寫一個密碼合法性檢查的小功能。該網站要求使用者設定的密碼必須由不少於6個字元組成,並且只能有英文字母、數字和小數點 .,還必須既有字母也有數字。 輸入格式: 輸入第一行給出一個正整數 N(≤ 100),隨後 N 行
PAT乙級——1086(字串操作)java實現
題目:就不告訴你 (15 分) 做作業的時候,鄰座的小盆友問你:“五乘以七等於多少?”你應該不失禮貌地圍笑著告訴他:“五十三。”本題就要求你,對任何一對給定的正整數,倒著輸出它們的乘積。 輸入格式: 輸入在第一行給出兩個不超過 1000 的正整數 A 和 B,其間以空格分隔。
PAT乙級——1091(字串操作)Java實現
題目:N-自守數 (15 分) 如果某個數 K 的平方乘以 N 以後,結果的末尾幾位數等於 K,那麼就稱這個數為“N-自守數”。例如 3×922 =25392,而 25392 的末尾兩位正好是 92,所以 92 是一個 3-自守數。 本題就請你編寫程式判斷一個給定的數字是否
PAT乙級——1093(字串匹配)Java實現
題目:字串A+B (20 分) 給定兩個字串 A 和 B,本題要求你輸出 A+B,即兩個字串的並集。要求先輸出 A,再輸出 B,但重複的字元必須被剔除。 輸入格式: 輸入在兩行中分別給出 A 和 B,均為長度不超過 106 的、由可見 ASCII 字元 (即碼值為32~12
PAT乙級——1007(陣列操作)
題目:素數對猜想 (20 分) 讓我們定義dn為:dn=pn+1−pn,其中pi是第i個素數。顯然有d1=1,且對於n>1有dn是偶數。“素數對猜想”認為“存在無窮多對相鄰且差為2的素數”。 現給定任意正整數N(&
PAT乙級——1009(字串拆解)
題目:說反話 (20 分) 給定一句英語,要求你編寫程式,將句中所有單詞的順序顛倒輸出。 輸入格式: 測試輸入包含一個測試用例,在一行內給出總長度不超過 80 的字串。字串由若干單詞和若干空格組成,其中單詞是由英文字母(大小寫有區分)組成的字串,單詞之間用 1
PAT乙級——1013(素數操作)
題目:數素數 (20 分) 令 Pi 表示第 i 個素數。現任給兩個正整數 M≤N≤104,請輸出 PM 到 PN 的所有素數。 輸入格式: 輸入在一行中給出 M 和 N,其間以空格分隔。 輸出格式: 輸出從 PM 到 PN
PAT甲級1017 (模擬排序)
課前分析 感覺和1016差不多, 就模擬一下幾個佇列, 有空位立即插入並計算等待時間, 沒空位計算最早處理完的使用者的離去時間,並更新為當前時間等等。 (1) vector a(10); //定義了10個整型元素的向量(尖括號中為元素型別名,它可以是任何合法的資
PAT乙級——1020(貪心演算法)
題目:月餅 (25 分) 月餅是中國人在中秋佳節時吃的一種傳統食品,不同地區有許多不同風味的月餅。現給定所有種類月餅的庫存量、總售價、以及市場的最大需求量,請你計算可以獲得的最大收益是多少。 注意:銷售時允許取出一部分庫存。樣例給出的情形是這樣的:假如我們有 3
PAT乙級1005(C語言)-繼續(3n+1)猜想 (25)
卡拉茲(Callatz)猜想已經在1001中給出了描述。在這個題目裡,情況稍微有些複雜。當我們驗證卡拉茲猜想的時候,為了避免重複計算,可以記錄下遞推過程中遇到的每一個數。例如對n=3進行驗證的時候,我們需要計算3、5、8、4、2、1,則當我們對n=5、8、4、2進行驗證的時候,就可以直接判定卡拉茲猜想的真偽,
PAT乙級——1034(模擬四則運算)
題目:有理數四則運算 (20 分) 本題要求編寫程式,計算 2 個有理數的和、差、積、商。 輸入格式: 輸入在一行中按照 a1/b1 a2/b2的格式給出兩個分數形式的有理數,其中分子和分母全是整型範圍內的整數,負號只可能出現在分子前,分母不為 0。 輸出格式: