思路:写一个Carry函数,形参的变量是一个int类型的数,判断这个数是不是符合简单加法,如果是的话计数器加1!!
直接将三个数各个位上的数相加,直接判断是否大于等于10就行!!(☆_☆)/~~
直接上代码:
#include<iostream>
#include<algorithm>
#include<cmath>
#include<string>
#include<cstring>
#include<stack>
using namespace std;
bool Carry(int num) {//carry进位
int num2 = num + 1;
int num3 = num + 2;
int sum;//相同位上的和
while (num3) {
sum = num % 10 + num2 % 10 + num3 % 10;
if (sum>=10) {
return 0;
}
num /= 10;
num2 /= 10;
num3 /= 10;
}
return 1;
}
int main() {
int n;
cin >> n;
int count=0;//计数器
for (int i=0; i <=n;i++) {
if (Carry(i)) {
count++;
}
}
cout << count << endl;
return 0;
}