九进制转化为十进制
#include<iostream>
using namespace std;
int main(){
int n=2022,t;
t=2*9*9*9+0+2*9+2;
printf("%d",t);
return 0;
}
顺子日期
#include<iostream>
using
namespace
std;
int
main()
{
int
s[13]={0,31,28,31,30,31,30,31,31,30,31,30,31},a[4];//定义一个数组,记录每个月的天数
int
i,j,l,t,m,q=0;
for
(i=1;i<=12;i++){
if
(i<10) a[0]=0,a[1]=i;
else
a[0]=1,a[1]=i%10;//月份的第一位和第二位的关系
for
(t=1;t<=s[i];t++){
a[2]=t/10;
a[3]=t%10;//日期的十位和各位
if
(a[0]+1==a[1]&&a[1]+1==a[2]) q++;
else
if
(a[1]+1==a[2]&&a[2]+1==a[3]) q++;//满足条件
else
continue
;
}
}
printf
(
"%d"
,q);
return
0;
}
刷题统计
#include<iostream>
using
namespace
std;
int
main(){
int
i;
long
long
int
a,b,c,d=0,p=0,z,m;//定义类型,以为数据很大,要用到long long
scanf
(
"%lld%lld%lld"
,&a,&b,&c);
d=5*a+2*b;//7天的刷题数
if
(d>c){
while
(c>0){
for
(i=1;i<=5;i++){
if
(c<=0){
break
;//大于7天的数可以除以7天的数,算不满7天的天数,减少时间复杂度
}
c-=a;
p++;
}
for
(i=6;i<=7;i++){
if
(c<=0){
break
;
}
c-=b;p++;
}
}
printf
(
"%lld"
,p);
}
else
z=c/d;m=c%d;
if
(m==0)
printf
(
"%lld"
,7*z);
while
(m>0){
for
(i=1;i<=5;i++){
if
(m<=0){
break
;
}
m-=a;
p++;
}
for
(i=6;i<=7;i++){
if
(m<=0){
break
;
}
m-=b;p++;
}
printf
(
"%lld"
,z*7+p);
}
return
0;
}
修剪树枝
#include<iostream>
using
namespace
std;
int
main()
{
int
n,i,k;
cin>>n;
int
a[n];
int
mid=(n-1)/2;//观察规律可知,输出的数关于中点对称
for
(i=0;i<mid+1;i++){
a[i]=(n-i-1)*2;//按规律可知长度和时间的关系
}
for
(i=n-1,k=0;i>=mid+1;i--,k++){
a[i]=a[k];
}
for
(i=0;i<n;i++){
cout<<a[i]<<endl;
}
return
0;
}