1.时钟
在 12 小时制的钟表中, 有分针、时针、秒针来表示时间。记分针和时 针之间的夹角度数为 A(0≤A≤180) 、分针和秒针之间的夹角度数为 (0≤B≤180) 。而恰好在 ss 时 ff 分 mm 秒时, 满足条件 A=2 BA=2B 且 0≤s≤6;0≤f<60;0≤m<60, 请问 s, f, ms,f,m 分别是多少。
请你找出一个 0 时 0 分 0 秒以外的解。
注意时针、分针、秒针都围绕中心匀速转动。
提交格式为三个由一个空格隔开的整数, 分别表示 s, f, ms,f,m 。如 31158 表示 3 点 11 分 58 秒。
#include <stdio.h>
#include <stdlib.h>
int main(){
int h=0,m=0,s=0;
double A,B,ds,dm,dh;
while(h<6){
s++;
if(s==60){
s=0;
m++;
}
if(m==60){
m=0;
h++;
}
ds=s*6.0;
dm=(m+s/60.0)*6.0;//时针、分针、秒针都围绕中心匀速转动,所以需要加上秒针所带来的度数变化
dh=(h+m/60.0+s/360.0)*30.0;
A=dh-dm;
B=dm-ds;
if(A<0){
A=dm-dh;
}
if(B<0){
B=ds-dm;
}
if(A>180)
A=360-A;
if(B>180)
B=360-B;
double c=2*B;
if(A==c){
break;
}
}
printf("%d %d %d",h,m,s);
return 0;
}
2.2022(填空)
将2022拆分成10个互不相同的正整数之和,总共有多少种拆分方法?
注意交换顺序视为同一种方法,例如2022=
1000+1022和2022=1022++1000就视为同—种方法。
#include <stdio.h>
#include <stdlib.h>
long long dp[11][2023];
int main() {
dp[0][0] = 1;
for (int i = 1; i <= 2022; i++) {
for (int j = 10; j >= 1; j--) {
for (int k = i; k <= 2022; k++) {
dp[j][k] += dp[j - 1][k - i];
}
}
}
printf("%lld",dp[10][2022]);
}
3.卡牌
问题描述
这天,小明在整理他的卡牌。
他一共有n种卡牌,第i种卡牌上印有正整数数i(i ∈[1,n]),且第à种卡牌现有a;张。
而如果有n张卡牌,其中每种卡牌各一张,那么这n张卡牌可以被称为―套牌。小明为了凑出尽可能多套牌,拿出了m张空白牌,他可以在上面写上数i,将其当做第i种牌来凑出套牌。然而小明觉得手写的牌不太美观,决定第i种牌最多手写b张。
请问小明最多能凑出多少套牌?
输入格式
输入共3行,第一行为两个正整数n, m。
第二行为n个正整数a1, a2,.. . , (n 。
第三行为n个正整数b1, b2,. . . , bn 。
输出格式
一行,一个整数表示答案。
样例输入
4 5
1 2 3 4
5 5 5 5
样例输出
3
样例说明
这5张空白牌中,拿2张写1,拿1张写2,这样每种牌的牌数就变为了3,3,3,4,可以凑出3套牌,剩下2张空白牌不能再帮助小明凑出—套。
评测用例规模与约定
对于30%的数据,保证n≤2000;
对于100%的数据,保证n≤2× 103 ; ai,bi ≤2n; m ≤n2。
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
int a[200005];
int b[200005];
int main()
{
int n, i, r = 0, f = 1;
long long int m;
scanf("%d%d", &n, &m);
for (i = 0; i < n; i++)
{
scanf("%d", &a[i]);
}
for (i = 0; i < n; i++)
{
scanf("%d", &b[i]);
}
while (f)
{
for (i = 0; i < n; i++)
{
if (a[i])
{
a[i]--;
}
else if (b[i] > 0 && m > 0)
{
b[i]--;
m--;
}
else
{
f = 0;
break;
}
}
if (f)
{
r++;
}
}
printf("%d", r);
}
4.刷题统计
问题描述
小明决定从下周一开始努力刷题准备蓝桥杯竞赛。他计划周一至周五每天做α道题目,周六和周日每天做b道题目。请你帮小明计算,按照计划他将在第几天实现做题数大于等于n题?
输入格式
输入一行包含三个整数a,b和n.
输出格式
输出一个整数代表天数。
样例输入
10 20 99
样例输出
8
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
// 请在此输入您的代码
int a,b,n;
int s=0;
int sum=0;
scanf("%d %d %d",&a,&b,&n);
while(s<n){
for(int i=1;i<=5;i++){
s+=a;
sum++;
if(s>=n){
break;
}
}
if(s<n){
for(int j=0;j<2;j++){
s=b+s;
sum++;
if(s>=n){
break;
}
}
}else{
break;
}
}
printf("%d",sum);
return 0;
}