目录
黑色星期五
代码:
#include<iostream>
#include<vector>
#include<cmath>
using namespace std;
int main()
{
int n,i,month;
cin>>n;
int year=1900,num=1;
int s[7]={0};
int mon[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
for(int i=0;i<n;i++) //年份是一个大循环
{
if((year%4==0&&year%100!=0)||year%400==0) //判断闰年
{
mon[2]=29;
}
for(int month=1;month<13;month++) //月份循环
{
for(int day=1;day<=mon[month];day++) //天数循环
{
if(day==13)
{
s[num]+=1;
}
num=(num+1)%7; //每7为一个周期
}
}
mon[2]=28; //下一年更新一下
year++;
}
cout<<s[6]<<' ';
for(int i=0;i<=5;i++)cout<<s[i]<<' ';
return 0;
}
这一题很注重细节问题,改了半天愣是不知道哪里错误,原来是题目数字看错了
FILIP
代码1:(vector版)
#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
bool cmp(vector<int> &A,vector<int> &B){
if(A.size()!=B.size())return A.size()>B.size(); //比较位数是否相同
for(int i=0;i<A.size();i++) // 位数相同,再从高位开始比较
if(A[i]!=B[i])
return A[i]>B[i];
return true;
}
int main()
{
string a,b;
vector<int> A,B;
cin>>a>>b;
//倒序存入
for(int i=a.size()-1;i>=0;i--)A.push_back(a[i]-'0');
for(int i=b.size()-1;i>=0;i--)B.push_back(b[i]-'0');
if(cmp(A,B)) // A>B
{
for(int i=0;i<A.size();i++)cout<<A[i];
}
else
{
for(int i=0;i<B.size();i++)cout<<B[i];
}
return 0;
}
代码2:(直接版:把每位都单独取出来)
#include<stdio.h>
#include<iostream>
using namespace std;
int f(int x)
{
int a, b, c;
a = x / 100;
b = x % 100 / 10;
c = x % 10;
x = a + b * 10 + c * 100;
return x;
}
int main()
{
int n, m;
int i = 0;
cin>>n>>m;
n = f(n);
m = f(m);
if (n > m)cout<<n;
else cout<<m;
return 0;
}
梦中的统计
代码:
#include<iostream>
#include<vector>
#include<cmath>
using namespace std;
typedef long long LL; //注意用long long
LL n,m;
LL s[12],k;
int main()
{
cin>>n>>m;
for(LL i=n;i<=m;i++)
{
k=i;
while(k)
{
s[k%10]++; //把个位数取出
k/=10; //下一位
}
}
for(LL i=0;i<=9;i++)cout<<s[i]<<' ';
return 0;
}
金币
代码:(思维题)
#include<iostream>
#include<vector>
#include<cmath>
using namespace std;
int main()
{
int k;
cin>>k;
int res=0;
int t=k; //t表示剩的天数
for(int i=1;;i++)
{
if(t-i>0)
{
res+=i*i;
t=t-i;
if(t==0)break;
}
else
{
res+=t*i;
break;
}
}
cout<<res;
return 0;
}