链接:https://ac.nowcoder.com/acm/contest/47125/B?&headNav=acm
来源:牛客网
吉利数
我们称有以下特征的数为吉利数:
1.所有的数位和是6的倍数
2.数位中至少包含1个6
请你计算1~n的正整数中有多少个吉利数?并输出这个范围内最大的吉利数。
输入描述:
输入一个正整数n。(1 ≤ n ≤ 1e6)
输出描述:
输出两个整数,第一个表示[1,n]内吉利数的个数。第二个表示其中最大的吉利数,如果这个范围不存在吉利数,则输出0。
示例1
输入
100
输出
3 66
说明
1~100范围内,6,60,66都是吉利数。66是最大的吉利数。
示例2
输入
3
输出
0 0
说明
1~3范围内没有吉利数。
#include<bits/stdc++.h>
using namespace std;
vector <long long > a(100000);
int main()
{
long long n;
int count=0;
cin>>n;
long long s,i0;
bool flag;
for(int i=1;i<=n;i++)
{
s=0;
i0=i;
flag=false;
if(i/10==0)
{
if(i%10==6)
{
flag=true;
}
}
while(i/10!=0)
{
if(i%10==6)
{
flag=true;
}
s+=i%10;
i=i/10;
}
if(i%10==6)
{
flag=true;
}
s+=i%10;
if(s%6==0&&flag==true)
{
count++;
a.push_back(i0);
}
i=i0;
}
if(a.size()==0)
{
cout<<0<<endl;
}
else{
cout<<count<<" ";
cout<<a.back()<<endl;
}
return 0;
}