也是第一次看见有  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 }
View Code
posted on 2014-07-25 08:12  dark_dream  阅读(333)  评论(0编辑  收藏  举报