所有代码都建议使用c++
A
#include <stdio.h>
//这题没啥单纯输出,printf()这里面如果没有%d这种类型的符号,仅有"xxx",可以当成原样输出xxx
int main(){
printf("QUIE NO1");
return 0;
}
B
#include<bits/stdc++.h>
using namespace std;
//题干可以简化为,求最大值减去最小值,因为这样一定可以得出一组数据里面的最大差值
int main(){
int n;
int min = 1e5, max = -1e5;//min要变成当下的最大值,这样可以保证维护最小值的时候是包括所有数的,max同理
//1e5=->100000,科学计数法
cin >> n;//这组数一共有几个数字
int a;
while (n--){
//输出n次
cin >> a;
if (a < min){
min = a;
}
//判断是不是比min小,如果比min小就让min变成这个值
if (a > max){
max = a;
//max同理为最大
}
}
cout << max - min;
return 0;
}
C
#include<bits/stdc++.h>
using namespace std;
int main(){
int x, y;
cin >> x >> y;
if (x == y){//判断是不是相等
cout << "Tacit!";
}else{//else 就是否则的意思,语义就是x!=y,x不等于y
cout << "No Tacit!";
}
return 0;
}
D
#include<bits/stdc++.h>
using namespace std;
//题目ak的意思就是,所有题目都通过系统测试,也就是有a道题就要写对a道题
int main(){
int a, b, c;
cin >> a >> b >> c;
cout << c / a;//在c+编程环境里面,直接相除不会向上取整,同Int相除会直接去除小数部分,仅保留整数部分
return 0;
}
E
#include<bits/stdc++.h>
using namespace std;
//很单纯的a+b问题,不给予解释
int main(){
int a, b;
cin >> a >> b;
cout << a + b;
return 0;
}
F
#include<bits/stdc++.h>
using namespace std;
int main(){
int sum1 = 0, sum2 = 0, n;
for (int i = 1; i <= 12; i++){
cin >> n;
//n是各月预算,这个循环的意思就是输入12个月的预算
sum1 = sum1 + 300 - n;
//sum1是津津手上的钱,每个月有300,n是预算也就是支出,很容易得到这个式子
if (sum1 < 0){
//这个判断就是顺应题目要求,如果津津手里的钱加上妈妈给的300不够在这个月用,就输出-x,也就是-某个月
cout << "-" << i;
return 0;
//return 0,直接结束程序
}else{
sum2 += (sum1 / 100 * 100);
//sum2的意思就是,津津的钱预算多的时候,大于100的时候去使用,可以存到过年用的钱
sum1 %= 100;
//这个式子表达出来就是,取余100,找sum1/100剩下的余数,也就是存完钱后剩下的钱
}
}
cout << sum2 * 1.2 + sum1;
return 0;
}
G
#include <bits/stdc++.h>
using namespace std;
void solve() {
int n;
cin>>n;
if (n<=1)//n<=1肯定不是素数了
cout<<"No"<<endl;
else if(n==2)
cout<<"Yes"<<endl;
else
{
for (int i=2;i<=sqrt(n);i++){//sqrt的意思是平方根
//各自可以去手写一遍,为什么取到n的平方根就可以了
if (n%i==0){
//代码可以被某个除了1以外的数整除,所以这个数字肯定是合数不是素数了
cout<<"No"<<endl;
return;
//结束这次的测试,因为是多测,我们不能使用return 0直接结束程序,所以使用这种写法,可以有效规避复杂写法
}
}
cout<<"Yes"<<endl;
}
}
int main() {
int t=1;
//首页题目说了有t组数据,代表多测,为了代码可读性高,我们一般写一个这样的模板
cin >> t;
while (t--) solve();
return 0;
}
H
#include<bits/stdc++.h>
//这题理论上可以暴力过,但是不建议,因为刚刚好很符合素数筛法的模板
using namespace std;
bool isprime[100000]={1};
//把所有数先当成素数使用吗,所有让所有数组元素全部编程,bool形态的数组只有2值,一个0一个1
int prime[10000];
//未来存素数的数组,此时为空
void getprime(int n){
//void 无返回值的意思
for(int i=0;i<=n;i++)isprime[i]=1;
//担心数组污染一般全部循环走一下全部赋值为1
isprime[0]=isprime[1]=0;
//0跟1都不是素数,所有让他们为0
int cnt=1;
//cnt是为了给prime数组使用
for(int i=2;i<=n;i++){//从2开始,因为0,1都不是素数
if(isprime[i])prime[cnt++]=i;
//如果筛完了,这个数还是为1,也就是代表它是素数,就让prime的数组存一下这个素数
for(int j=1;j<=cnt&&i*prime[j]<=n;j++){
//j<=cnt,就是限制只搜索到prime已存入的素数因为没有存的时候一般默认后面都是0,全是无效数字
//i*prime[j]<=n就是因为我们的题目要求只是0-n这个范围,大于n的数就没必要筛选了
isprime[i*prime[j]]=0;
//这个代码意思就是,素数的倍数一定不是素数,所以就在isprime中给那个数置为0,代表它不是素数
if(i%prime[j]==0)break;
//如果一个数能被素数整除就结束,代表它肯定不是素数了
}
}
}
void solve(){
int n;
int sum=0;
cin>>n;
getprime(n);
for(int i=2;i<=n;i++){
if(isprime[i]==1)sum++;
//只判断是不是素数,如果isprime[]里面这个数是1,就代表它是素数,sum+1
}
cout<<sum<<endl;
}
int main(){
int t=1;
cin>>t;//题目是多组数据,多测环境常规模板
while(t--)solve();
return 0;
}
I
//I题暂不提供详细题解,建议学习二维数组后自己思考
#include<bits/stdc++.h>
using namespace std;
int arr[20][20];
int ways[][2]={{0,1},{1,1},{1,0},{-1,1}};
bool inmap(int x, int y){
return (x<= 19 && x>=1 && y <= 19 && y>=1)?true:false;
}
int check(int x, int y )
{
int nownum = arr[x][y];
for (int i = 0 ; i <4 ;++i){
for (int t = 1 ; t <= 4;++t){
int nextx= x + t*ways[i][0];
int nexty= y + t*ways[i][1];
if (!inmap(nextx,nexty)){break;}
if (arr[nextx][nexty]!=nownum) {break;}
if (t==4){
nextx+=ways[i][0];
nexty+=ways[i][1];
if (inmap(nextx,nexty)&&arr[nextx][nexty]==nownum) break;
nextx=x-ways[i][0];
nexty=y-ways[i][1];
if (inmap(nextx,nexty)&&arr[nextx][nexty]==nownum) break;
return 1;
}
}
}
return 0;
}
void solve(){
for (int i = 1; i <= 19 ; ++i)
for (int j = 1 ;j <= 19 ; ++j){cin>>arr[i][j];}
for (int x = 1 ; x<= 19 ; ++x){
for (int y = 1 ; y <= 19 ; ++y){
if (arr[x][y]==0) continue;
if (check(x,y)!= 0 ){
cout<<arr[x][y]<<"\n";
cout<<x<< " "<<y<<"\n";
return;
}
}
}
cout<<0<<"\n";
return;
}
int main(){
ios::sync_with_stdio(false);
cin.tie(0);
int t ;
cin>>t;
while(t--){
solve();
}
return 0;
}

京公网安备 11010502036488号