• 蓝桥杯 第五届


    奖券数目

    有些人很迷信数字,比如带“4”的数字,认为和“死”谐音,就觉得不吉利。
    虽然这些说法纯属无稽之谈,但有时还要迎合大众的需求。某抽奖活动的奖券号码是5位数(10000-99999),要求其中不要出现带“4”的号码,主办单位请你计算一下,如果任何两张奖券不重号,最多可发出奖券多少张。

    请提交该数字(一个整数),不要写任何多余的内容或说明性文字。

    #include<iostream>
    using namespace std;
    int main(){
       	int ans=0;
       	for(int i=1;i<=9;i++){
       		if(i==4) continue;
       		for(int j=0;j<=9;j++){
       			if(j==4) continue;
       			for(int k=0;k<=9;k++){
       				if(k==4) continue;
       			  for(int l=0;l<=9;l++){
       			  	if(l==4) continue;
       			    for(int o=0;o<=9;o++){
       			    	if(o==4) continue;
       			    	ans++;
       			    }
       		      }
       		   }
       		}
       	}
       	cout<<ans;
       	return 0;
    } 
    

    星系炸弹

    在X星系的广袤空间中漂浮着许多X星人造“炸弹”,用来作为宇宙中的路标。
    每个炸弹都可以设定多少天之后爆炸。
    比如:阿尔法炸弹2015年1月1日放置,定时为15天,则它在2015年1月16日爆炸。
    有一个贝塔炸弹,2014年11月9日放置,定时为1000天,请你计算它爆炸的准确日期。

    请填写该日期,格式为 yyyy-mm-dd 即4位年份2位月份2位日期。比如:2015-02-19
    请严格按照格式书写。不能出现其它文字或符号。

    #include<iostream>
    using namespace std;
    int main(){
    int y=2014,m=11,d=9;
    for(int i=1;i<=1000;i++){
    d++;
    if((m==1||m==3||m==5||m==7||m==8||m==10||m==12)&&d==32) {
    m++;
    d=1;
    }
    if((m==4||m==6||m==9||m==11)&&d==31){
    m++;
    d=1;
    }
    if(m==2&&y==2016&&d==30){
    m++;d=1;
    }
    if(m==2&&y!=2016&&d==29){
    m++;
    d=1;
    }
    if(m==13){
    y++;
    m=1;
    }
    }
    cout<<y<<"-"<<m<<"-"<<d;
    return 0;
    }
    

    三羊献瑞

    观察下面的加法算式:

    祥 瑞 生 辉

    • 三 羊 献 瑞

    三 羊 生 瑞 气

    (如果有对齐问题,可以参看【图1.jpg】)

    其中,相同的汉字代表相同的数字,不同的汉字代表不同的数字。

    请你填写“三羊献瑞”所代表的4位数字(答案唯一),不要填写任何多余内容。

    #include<iostream>
    using namespace std;
    int main(){ 
    for(int i=1;i<=9;i++){
    for(int j=0;j<=9;j++){
    if(j==i) continue;
    for(int k=0;k<=9;k++){
    if(k==i||k==j) continue;
    for(int l=0;l<=9;l++){
    if(l==i||l==j||l==k) continue;
    for(int o=1;o<=9;o++){
    if(o==i||o==j||o==k||o==l) continue;
    for(int a=0;a<=9;a++){
    if(a==i||a==j||a==k||a==l||a==o) continue;
    for(int b=0;b<=9;b++){
    if(b==i||b==j||b==k||b==l||b==o||b==a) continue;
    for(int c=0;c<=9;c++){
    if(c==i||c==j||c==k||c==l||c==o||c==a||c==b) continue;
    
    if((i*1000+j*100+k*10+l)+(o*1000+a*100+b*10+j)==(o*10000+a*1000+k*100+j*10+c)) 
    cout<<o<<a<<b<<j<<endl;
    
    
    }
    }
    }
    }
    }
    }
    }
    }
    return 0;
    }
    

    加法变乘法

    我们都知道:1+2+3+ ... + 49 = 1225
    现在要求你把其中两个不相邻的加号变成乘号,使得结果为2015

    比如:
    1+2+3+...+1011+12+...+2728+29+...+49 = 2015
    就是符合要求的答案。

    请你寻找另外一个可能的答案,并把位置靠前的那个乘号左边的数字提交(对于示例,就是提交10)。

    注意:需要你提交的是一个整数,不要填写任何多余的内容。

    #include<iostream>
    using namespace std;
    int main(){
    for(int i=1;i<=46;i++){
    for(int j=i+1;j<=48;j++)
    {
    if(i*(i+1)-(i+i+1)+j*(j+1)-(j+j+1)==2015-1225)
    cout<<i<<" "<<j<<endl;
    }
    }
    return 0;
    }
    

    牌型种数

    小明被劫持到X赌城,被迫与其他3人玩牌。
    一副扑克牌(去掉大小王牌,共52张),均匀发给4个人,每个人13张。
    这时,小明脑子里突然冒出一个问题:
    如果不考虑花色,只考虑点数,也不考虑自己得到的牌的先后顺序,自己手里能拿到的初始牌型组合一共有多少种呢?

    请填写该整数,不要填写任何多余的内容或说明文字。

    #include<iostream>
    using namespace std;
    int ans;
    void f(int k,int cnt){
    if(k>13||cnt>13) return;
    if(k==13&&cnt==13) {
    ans++;
    return;
    }
    for(int i=0;i<5;i++)
    f(k+1,cnt+i);
    }
    int main(){
    f(0,0);
    cout<<ans;
    }
    

    移动距离

    X星球居民小区的楼房全是一样的,并且按矩阵样式排列。其楼房的编号为1,2,3...
    当排满一行时,从下一行相邻的楼往反方向排号。
    比如:当小区排号宽度为6时,开始情形如下:

    1 2 3 4 5 6
    12 11 10 9 8 7
    13 14 15 .....

    我们的问题是:已知了两个楼号m和n,需要求出它们之间的最短移动距离(不能斜线方向移动)

    输入为3个整数w m n,空格分开,都在1到10000范围内
    w为排号宽度,m,n为待计算的楼号。
    要求输出一个整数,表示m n 两楼间最短移动距离。

    例如:
    用户输入:
    6 8 2
    则,程序应该输出:
    4

    再例如:
    用户输入:
    4 7 20
    则,程序应该输出:
    5

    资源约定:
    峰值内存消耗 < 256M
    CPU消耗 < 1000ms

    请严格按要求输出,不要画蛇添足地打印类似:“请您输入...” 的多余内容。

    所有代码放在同一个源文件中,调试通过后,拷贝提交该源码。

    注意: main函数需要返回0
    注意: 只使用ANSI C/ANSI C++ 标准,不要调用依赖于编译环境或操作系统的特殊函数。
    注意: 所有依赖的函数必须明确地在源文件中 #include , 不能通过工程设置而省略常用头文件。

    提交时,注意选择所期望的编译器类型。

    #include<iostream>
    #include<stdlib.h>
    using namespace std;
    int main()
    {
    int w,m,n;
    cin>>w>>m>>n;
    int rm,rn,cm,cn;
    rm=m%w==0?m/w:m/w+1;
    rn=n%w==0?n/w:n/w+1;
    if(rm%2==0) cm=rm*w-m+1;//偶数行 
    else cm=w-(rm*w-m);//奇数行 
    if(rn%2==0) cn=rn*w-n+1;
    else cn=w-(rn*w-n);
    cout<<abs(cm-cn)+abs(rm-rn);
    return 0;
    }
    
    ljm要加油
  • 相关阅读:
    截图与图片合成的几种方法
    GPUImage 自定义滤镜
    How do I solve the error: An error was encountered while running (Domain = LaunchServicesError, Code = 0) ?
    tableview 重用nib cell
    开发DZ插件教程
    QBImagePickerController 用法
    ALAsset和ALAssetRepresentation
    if exists和if not exists关键字用法
    Java socket 超时
    Android 图片的压缩
  • 原文地址:https://www.cnblogs.com/ljmmm1/p/13795623.html
Copyright © 2020-2023  润新知