3、好数

题目 好数

image-751555de

思路分析

老朋友了 拆数分解

因为是考试所以每步都在调试 这里其实没必要 谨慎过头了

代码实现

#include<bits/stdc++.h>

using namespace std;

#define endl '\n'

typedef long long LL;

//拆数分解 另外维护一个信息:当前的数是第几位 用个cnt计数 从1开始

int main()

{

	int n;cin>>n;

	LL res=0;

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

		int x=i;

		int cnt=1;//从个位开始

//		cout<<"当前数为:"<<x<<" ";

		bool success=true;

		while(x){

			int cur=x%10;

//			cout<<"第 "<<cnt<<"位为: "<<cur;

			if(cnt&1){//奇数位

				if(cur%2==0){//是偶数

					success=false;

					break;

				}

			}

			else{//偶数位

				if(cur%2==1){//是奇数

					success=false;

					break;

				}

			}

			x/=10;

			cnt++;

		}

		if(success){

			res++;

		}

//		cout<<endl;

	}

	cout<<res;

	return 0;

 }

同类题型

视频讲解


⬅️ 2、小球反弹 🏠 00-刷题理模型 ➡️ 4、R格式