解題報告 Summing Digits

2022-09-02 08:39:11 字數 1053 閱讀 5935

題目原文:

對乙個正整數 n, f(n) 表示 n 以十進位制表示時所有位數的和。

顯而易見地,數列 n, f(n), f(f(n)), f(f(f(n))), ...

一直重複下去最後會變成乙個一位數的整數。

這個一位數字以 g(n) 表示。

例如,若 n = 1234567892,則:

f(n) = 1+2+3+4+5+6+7+8+9+2 = 47

f(f(n)) = 4+7 = 11

f(f(f(n))) = 1+1 = 2

因此, g(1234567892) = 2。

每筆測試資料一列。

每列都有乙個大不於2,000,000,000 的正整數 n。

當 n = 0 時代表輸入結束,不用輸出 n = 0 這筆資料。

請參考 sample input

每筆測試資料輸出一列 g(n)。

2

1147

1234567892

0

222

2

我這次嘗試了下用函式,還有就是自己很不習慣用long首先想到的是double和float,但是%又只能是倆個整數所以自己要記住這點。還要以後的**盡量用函式來表示,因為以後出去工作基本都是用函式,還有要加強習慣去寫注釋。這是道比較簡單的題目具體就不說了。

這裡附上我的**,你可以去這裡提交你的**驗證你的**是否正確。

#includeint chang(long

long

n);int main(void

)

return0;

}int chang(long

long

n)

else

num[j]=n%10

; sum+=num[j];

n=n/10

; }

if(sum<10)break

;

else

}return

sum;

}}

Block Voting 解題報告

這道題做的有點狼狽,效率不高,差一點就tle的ac了。看status裡的,ac的時間大多數都是0ms的。肯定有乙個更有效率的演算法的。下面說下我的狼狽演算法。出處 http acm.jlu.edu.cn joj showproblem.php?pid 1223 問題描述 求每個party的權值。第i...

Safebreaker 解題報告

又是吉林大學一道acm題目,題目很簡單,直接暴力解決。出處 http acm.jlu.edu.cn joj showproblem.php?pid 1718 問題描述 對乙個給定數0000 9999 根據一系列猜測,判斷這個數是否存在,存在的話,是否唯一 例如 3321,給定數 作出猜測,1223 ...

路由 解題報告

路由 問題描述 有乙個tcp ip網路 每台計算機都有乙個或多個網路介面。每個介面根據它的ip位址和子網掩碼來識別 即兩個4位元組的數,兩個字 節之間有乙個 號.子網掩碼有乙個二進位制表示法 有k個 1 然 後是 m 個 0 k m 8 4 32 如 212.220.35.77 是乙個 ip 地 址...