蓝桥杯---棋盘放麦子.猜生日

简介: 蓝桥杯---棋盘放麦子.猜生日

1.棋盘放麦子


你一定听说过这个故事。国王对发明国际象棋的大臣很佩服,问他要什么报酬,大臣说:请在第 11 个棋盘格放 11 粒麦子,在第 22 个棋盘格放 22 粒麦子,在第 33 个棋盘格放 44 粒麦子,在第 44 个棋盘格放 88 粒麦子,…后一格的数字是前一格的两倍,直到放完所有棋盘格(国际象棋共有 6464 格)。


国王以为他只是想要一袋麦子而已,哈哈大笑。


当时的条件下无法准确计算,但估算结果令人吃惊:即使全世界都铺满麦子也不够用!


请你借助计算机准确地计算,到底需要多少粒麦子。


#include<bits/stdc++.h>
using namespace std;
unsigned long long total,count1 = 1;
int main()
{
  total += count1;
  for(int i = 1; i<=63; i++){// 1 : 2的1次方  2 : 2的2次方 2^0+2^1+...+2^63
    count1 *= 2;  // i = 1, count1:2  i = 2 count1: 4
    total += count1;
    //cout<<total<<endl;
  }
  cout<<total<<endl;
  return 0;
}


这个题如果使用double类型存储数据,运算时会出现精度损失的问题.可以使用 long long 类型,还得是无符号的才行,有符号的会越界.


2.猜生日


今年的植树节(2012 年 3 月 12日),小明和他的叔叔还有小伙伴们一起去植树。休息的时候,小明的同学问他叔叔多大年纪,他叔叔说:“我说个题目,看你们谁先猜出来!”


“把我出生的年月日连起来拼成一个 8 位数(月、日不足两位前补 0)正好可以被今天的年、月、日整除!”


他想了想,又补充到:“再给个提示,我是 6 月出生的。”


根据这些信息,请你帮小明算一下,他叔叔的出生年月日。


格式是年月日连成的 88 位数。例如,如果是 1948 年 6月 12 日,就写:19480612


#include<bits/stdc++.h>
#include<sstream>
using namespace std;
int main()
{
  bool flag = false;
  int date;
  stringstream s;
  string day,year;
  string str;
  for(int i = 1900; ; i++){
    s.clear();
    s<<i;
    s>>year;
    s.clear(); 
    for(int j = 1; j <= 30; j++){
      str="";
      day = "";
      s<<j;
      s>>day;
      str = j <= 9 ? (year+ "060"+day) :(year+ "06"+day);//如果天数<= 9 需要补0. 
      s.clear();
      s<<str;
      s>>date;
      s.clear();
      if(date % 2012 == 0 && date % 3 == 0 && date % 12 == 0){
        flag = true;
        break;
      }
    }
    if(flag){
      cout<<date<<endl;
      break;
    }
  }
  return 0;
}

上面使用字符串来做太过于麻烦,看了别人的代码发现可以直接做

#include<bits/stdc++.h>
using namespace std;
int date,m=6;
int main()
{
  for(int i = 1900; i < 2012; i++){//19480612。
    for(int j=1; j<=30; j++){
      date = i * 10000 + m* 100+j;
      if(date % 2012 == 0 && date % 3 == 0 && date % 12 == 0){  
        cout<<date<<endl;
        return 0;
      }
    }
  }
  return 0;
 } 


相关文章
|
1月前
|
C语言
猜数字小游戏(随机生成’三剑客‘)
猜数字小游戏(随机生成’三剑客‘)
|
1月前
|
存储 算法 编译器
捣蛋小游戏——猜数字
捣蛋小游戏——猜数字
26 0
|
1月前
|
存储 弹性计算 运维
打印国际象棋棋盘
【4月更文挑战第29天】
26 1
|
11月前
猜数字小游戏
猜数字小游戏
45 0
|
11月前
小游戏(猜数字、剪刀石头布) 2021-01-03
小游戏(猜数字、剪刀石头布) 2021-01-03
|
10月前
|
人工智能
找凶手,排名次,杨辉三角打印
找凶手,排名次,杨辉三角打印
|
10月前
|
存储 C语言
你也能做的简单版猜数字游戏(和优化版猜数字)
你也能做的简单版猜数字游戏(和优化版猜数字)
|
11月前
倒置字符串、猜名次、猜凶手、杨辉三角(上)
倒置字符串、猜名次、猜凶手、杨辉三角(上)
|
11月前
|
算法
倒置字符串、猜名次、猜凶手、杨辉三角(下)
倒置字符串、猜名次、猜凶手、杨辉三角(下)
|
11月前
|
C++
你猜我猜不猜 (猜数字游戏) 快来小玩一把叭
你猜我猜不猜 (猜数字游戏) 快来小玩一把叭
71 0