1 条题解

  • 0
    @ 2025-8-24 21:15:03

    自动搬运

    查看原文

    来自洛谷,原作者为

    avatar hahaloo
    **

    搬运于2025-08-24 21:15:02,当前版本为作者最后更新于2023-06-14 13:53:35,作者可能在搬运后再次修改,您可在原文处查看最新版

    自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多

    以下是正文


    前置知识

    我们需要了解一个知识,对于一个 int 类型的数 123123,我们先取它除以 1010 的余数,结果是 33,即它的最后一位。我们再将它除以 1010 结果为 1212(因为 int 类型除法会丢失精度,也就是向下取整),这时我们会发现 1212 就是 123123 的前两位。按照这个步骤操作我们就可以取出这个数的每一位了。

    代码

    #include<bits/stdc++.h>
    using namespace std;
    int a,b,ans=0;
    int main(){
    	cin>>a>>b;
    	for(int i=a;i<=b;i++){//从a到b枚举每一个数 
    		int p=i,sum1=0,sum2=0,flag=0;
    		while(p>0){
    			if(flag==0){//取出这个数的奇数位 ,用flag实现奇偶位的交替 
    				sum1+=p%10; 
    				flag=1;
    			}else{//取出这个数的偶数位 
    				sum2+=p%10;
    				flag=0;
    			}
    			p/=10;
    		}
    		if(sum1==sum2)
    		ans++;
    	}
    	cout<<ans;
    }
    
    • 1

    信息

    ID
    8817
    时间
    1000ms
    内存
    128MiB
    难度
    1
    标签
    递交数
    0
    已通过
    0
    上传者