Computer >> Máy Tính >  >> Lập trình >> C ++

Mã C ++ để tìm tổng số chữ số trong các số đặc biệt

Giả sử, chúng ta được cho một số nguyên k. Chúng tôi gọi một số là số đặc biệt nếu tất cả các chữ số trong số đó đều giống nhau. Ví dụ, 1, 11, 1111 là các số đặc biệt. Chúng tôi đếm các số đặc biệt theo thứ tự 1, 11, 111, 1111, 2, 22, 222, 2222, 3, 33, 333, 3333, v.v. Chúng ta phải tìm ra tổng số chữ số có trong các số đặc biệt lên đến k. Giá trị của k không lớn hơn 10000.

Vì vậy, nếu đầu vào là k =9999, thì đầu ra sẽ là 90.

Các bước

Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -

s := convert k to string
Define an array v of size: := {0, 1, 3, 6, 10}
print(((s[0] - '0') - 1) * 10 + v[length of s])

Ví dụ

Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -

#include <bits/stdc++.h>
using namespace std;
#define N 100
void solve(int k) {
   string s = to_string(k);
   int v[] = {0, 1, 3, 6, 10};
   cout<< ((s[0] - '0') - 1) * 10 + v[s.length()] << endl;
}
int main() {
   int k = 9999;
   solve(k);
   return 0;
}

Đầu vào

9999

Đầu ra

90