118. 小 y 删数字(卡码网周赛第十八期(23年科大讯飞提前批笔试真题))
题目描述
给定一个长度为 n 的数组,数组元素为 a1, a2, . . , an,每次能删除任意 a 的任意一位,求将所有数字变成 0 最少需要几步。例如 103 若删除第 1 位则变成 3; 若删除第 2 位则变成13; 若删除第 3 位则变成 10。
输入
输入描述第一行一个正整数 n 代表数组长度。接下来一行 n 个数第 j 个数代表 a。
输出
输出一行一个数代表答案。
样例输入
5
10 13 22 100 30
样例输出
7
提示
数据范围:
1 ≤ n ≤ 10^5。 0 ≤ ai ≤ 10^9
题解1(C++版本)
#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
LL ans;
int n;
void get(int num){
while(num){
if(num%10) ans++;
num /= 10;
}
}
int main(){
scanf("%d", &n);
for(int i = 1, a; i <= n; i++){
scanf("%d", &a);
get(a);
}
printf("%lld\n", ans);
return 0;
}