也是第一次看见有 C1 C2 C3这三个等级的题目,只撸出了C1
题意:给你一个10^6以内的数字,问你要每一次减去它其中的一位(当做个位)最少需要多少次减为0
解题思路:每一次减去最大的那个数可得是贪心最优。
解题代码:
1 // File Name: 331c1.cpp 2 // Author: darkdream 3 // Created Time: 2014年07月24日 星期四 22时32分18秒 4 5 #include<vector> 6 #include<list> 7 #include<map> 8 #include<set> 9 #include<deque> 10 #include<stack> 11 #include<bitset> 12 #include<algorithm> 13 #include<functional> 14 #include<numeric> 15 #include<utility> 16 #include<sstream> 17 #include<iostream> 18 #include<iomanip> 19 #include<cstdio> 20 #include<cmath> 21 #include<cstdlib> 22 #include<cstring> 23 #include<ctime> 24 25 using namespace std; 26 27 int main(){ 28 int n; 29 scanf("%d",&n); 30 int ans = 0 ; 31 while(n) 32 { 33 int t = n; 34 int maxn = 0 ; 35 while(t) 36 { 37 maxn = max(maxn,t%10); 38 t = t /10 ; 39 } 40 n -= maxn; 41 ans ++; 42 } 43 printf("%d\n",ans); 44 return 0; 45 }
没有梦想,何谈远方