代码哪里错了??
  • 板块学术版
  • 楼主caramel_qwq
  • 当前回复13
  • 已保存回复13
  • 发布时间2020/12/5 11:04
  • 上次更新2023/11/5 06:40:26
查看原帖
代码哪里错了??
444195
caramel_qwq楼主2020/12/5 11:04

题目明明的幸运数 明明喜欢7这个数字,如果一个数的十进制表示中含有7,则该数为明明的幸运数。例如7,78,17都是幸运数,而168不是幸运数。

如果一个数能够被幸运数整除,则称之为近似幸运数。例如14能被7整除,是一个近似幸运数。

现给定两个正整数,请输出这个区间内(含区间首尾)既不是幸运数也不是近似幸运数的那些数的数量;如果不存在,则输出0。

[输入描述]

输入两个整数a, b。

[输出描述]

输出为一个数,表示[a, b]区间中既不是幸运数也不是近似幸运数的数的数量。

样例输入:1 10

样例输出:9

#include<bits/stdc++.h>
using namespace std;
int a,b;
int i;
int sum=0;
bool flag;
void p_seven(){
	flag=false;
	int x,y=1;
	int n=i;
	if(i<10)	x=1;
	if(i>=10&&i<=99)	x=2;
	if(i>=100&&i<=999)	x=3;
	if(i>=1000&&i<=9999)	x=4;
	if(i>=10000&&i<=99999)	x=5;
	if(i>=100000&&i<=999999)	x=6;
	if(i==1000000) 	x=7;
	while(y<=x){
		int right=n%10;
		n/=10;
		y++;
		if(right==7){
			flag=true;
			return ;
		}
	}
	flag=false;
}
int main(){
	cin>>a>>b;
	for(i=a;i<=b;i++){
		if(i==7){
			sum++;
		}
		p_seven();
		if(i%7==0){
			sum++;
		}
		if(flag==true){
			sum++;
		}
	}
	printf("%d\n",b-sum);
	return 0;
}

搞不懂啊!!

2020/12/5 11:04
加载中...