蓝桥杯 数位递增的数

56 阅读1分钟

14.数位递增的数 - 蓝桥云课 (lanqiao.cn)

当n是30的时候,除了10,20,21,30是不满足条件的,其他的都满足条件:

image.png

#include <bits/stdc++.h>
using namespace std;
vector<int>v;
int cnt;


int main() {

	int n;
	cin >> n;



	for (int j = 1; j <= n; j++) {

		int flag = 1;


		int n = j;

		while (n) {
			int temp1 = n % 10;

			n /= 10;
			int temp2 = n % 10;
			if (temp1 < temp2) {
				flag = 0;
				break;
			}
		}


		if (flag == 1)
			cnt++;

	}



	cout << cnt << endl;
	return 0;
}

如果是这样写会有很多重复的

#include <bits/stdc++.h>
using namespace std;
vector<int>v;
int cnt;
int flag;

int main() {

	int n;
	cin >> n;

	for (int i = 1; i <= n; i++) {
		flag = 0;
		int t = i;
		while (t) {
			int t1 = t % 10;
			t /= 10;
			int t2 = t % 10;
			if (t1 >= t2) {
				cout << t1 << " " << t2 << endl;
				flag = 1;
			}

		}

		if (flag == 1)
			cnt++;
	}

	cout << cnt << endl;
	return 0;
}

image.png