原題:
7-1 b是a的多少倍 (15 分)
設乙個數 a 的最低 d 位形成的數是 ad。如果把 ad 截下來移到 a 的最高位前面,就形成了乙個新的數 b。b 是 a 的多少倍?例如將 12345 的最低 2 位 45 截下來放到 123 的前面,就得到 45123,它約是 12345 的 3.66 倍。
輸入在一行中給出乙個正整數 a(≤109)和要擷取的位數 d。題目保證 d 不超過 a 的總位數。
計算 b 是 a 的多少倍,輸出小數點後 2 位。
12345 2
3.66
12345 5
1.00
解題思路:
1.先計算數字的位數
2.將取掉的乘與位數,移至數字前端
**如下:
#include
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;
int cou(int a)
return n;
}int main(){
long long a;
int nu;
cin>>a>>nu;
int num=1;
for(int i=0;i考場失誤:題目較簡單,但是除錯**浪費了相當長的時間,只是因為編譯器出現了不能在for迴圈中計算的問題
2023年9月8日pat甲級第二題
比較鏈長,較短的鍊錶逆序輸出,在資料中保留上乙個節點下標即可。每次輸出長鏈的兩個節點外加短鏈的乙個節點,同時讓當前值指向下乙個節點的下標。若最後長鏈仍有節點,則順序輸出即可。如下 include include include using namespace std const int maxn 1...
PAT 甲級 2023年9月8號 題解
第一題 dfs 剪枝 k位數不能所有的數字都遍歷一遍,必須有選擇的。選擇k位數和為m的。remain為剩下未分配數的位置的和。remain必須小於等於剩下的位數 9。因為若是大於的話,剩下的所有位數都為9,都滿足不了所有位加起來為m。比如k 3,m 20,如果第一位為1,則return。因為無論後面...
2023年8月9日訓練日記
上午先練習了乙個小時的打字,然後把週三晚上codeforces上的題補了,d那個題辦法很巧妙,自己當時沒想到,上午去做了一下去年吉林的ccpc,前三題都很簡單,沒什麼坑,第四題沒看懂,然後做了e題,是一道推公式,解二元一次方程的題,推出來公式處理好細節就過了。下午看了看有關組合數好還有排列的的相關知...