2018藍橋杯省賽B組

Annaprincess發表於2024-03-16

2018藍橋杯省賽B組

6.第幾天

#include <iostream>
using namespace std;
int main()
{cout<<125;
// 請在此輸入您的程式碼
return 0;
}
計算:
31+29+31+30+4=125

計算的程式碼


#include<bits/stdc++.h>
using namespace std;
int ans;
int main()
{
  
  int m[13]={0,31,29,31,30,31,30,31,31,30,31,30,31};//考:每個月天數的表示
  int y1=1;
  int r1=1;
 int y2=5;
int r2=4;
 while(!((y1==y2)&&(r1==r2))){
r1++;


if(r1>m[y1]){
  r1=1;
  y1++;
}

 ans++;

 
 }
 cout<<ans+1;
  // 請在此輸入您的程式碼
  return 0;
}

A.明碼

//第一步弄清楚這段文字是什麼這是個漢字
#include<bits/stdc++.h>
using namespace std;
void two(int i,string&a){
//對於一個整數化成8位二進位制,範圍-128~127,對於正數最高位在二進位制中是0也就是預設的-,對於負數最高位是1
if(i>=0){
for(int j=0;j<7;j++){
if((i>>j)&1==1){
a[8-j-1]='1';
}
}
}
else{//負數
a[0]='1';
for(int j=0;j<7;j++){
if(((128+i)>>j)&1==1){
a[8-j-1]='1';
}
}
}
}
int main(){
/*解析:題目中說有十個漢字,剛好十行,一行一個漢字!然後 一個漢字十六行,一行2個位元組,所以一個漢字32個位元組,剛好一行32個整數,所以一個整數
表示1個位元組,所以我們的任務是將每個漢字的字形先輸出按照一行兩位元組(2個整數-->化成2進位制)一個漢字16行,然後透過漢字讀懂題最後輸出答案。
關鍵:將任意整數化成二進位制
怎麼看:1為墨跡要看的,-不管

*/
for(int i=0;i<10;i++){//10個整數
for(int j=0;j<16;j++){//1個整數16行,1行兩位元組(2個是十進位制整數)
int x,y;
cin>>x>>y;
//先預設一行的兩位元組,等會兒只用看哪一位化成二進位制是1,如果是0就不用變還是-
string a="--------";
string b="--------";
two(x,a);
two(y,b);
cout<<a+b<<endl;
}
cout<<"====================================================";//下一個漢字
}

return 0;
}
//第二步計算要提交的答案-->上面文字為9的9次方等於多少?
#include<bits/stdc++.h>
using namespace std;
int main(){
    long long int ans=1;
    for(int i=0;i<9;i++){
    ans*=9;
    }
    
    cout<<ans;
        return 0;
}

//填空題只用提交答案
#include<bits/stdc++.h>
using namespace std;
int main(){
    cout<<"387420489 ";
    return 0;
}

考點:

讀懂題-->確定是考察化整數為二進位制

化成二進位制模版
 void two(int i,string&a){
//對於一個整數化成8位二進位制,範圍-128~127,對於正數最高位在二進位制中是0也就是預設的-,對於負數最高位是1
if(i>=0){
for(int j=0;j<7;j++){
if((i>>j)&1==1){
a[8-j-1]='1';
}
}
}
else{//負數i和正數128+i只有最高位不同
a[0]='1';
for(int j=0;j<7;j++){
if(((128+i)>>j)&1==1){
a[8-j-1]='1';
}
}
}
}

相關文章