ZISUOJ 高级语言程序设计实训-基础C(部分题)

说明:

        有几个题是不会讲的,我只能保证大家拿保底分。

题目列表:

fcaaa896e3ad4a6c9195e530572734a9.png

问题 A: 求平均数1 

3b4b3a663863450188ef61372e399263.png 

思路:

        送分题……

参考题解:

#include <iostream>
#include <iomanip>
using std::cin;
using std::cout;int main(){cin.tie(nullptr)->sync_with_stdio(false);double avg = 0;int tmp,cnt = 0;while(cin >> tmp){avg+=tmp,cnt++;}cout << std::fixed << std::setprecision(2) << avg/cnt << std::endl;return 0;
} 

问题 B: 粘墙三角形 

12f5df494d344207a1a99cf2b312fab3.png

 思路:

        题目说<=26,那就很简单了,写个二重循环秒了。

参考题解:

#include <iostream>
using std::cin;
using std::cout;int main(){cin.tie(nullptr)->sync_with_stdio(false);int n;while(cin >> n){for(int i = 1;i<=n;i++){cout << 'a';for(int j = 1;j<=n-i;j++) cout << ' ';for(int j = 1;j<=i;j++) cout << char('a'+j-1);cout << '\n';}cout << '\n';}return 0;
} 

 问题 C: 门帘设计

807090d235ee4eba9c272c97f090b2d3.png 

思路:

        注意这里的输出中间都是有空格的。门帘的上面是对2取模为1的输出字符,否则输出空格;门帘的下面是对4取模为1的输出字符,否则输出空格。

参考题解:

#include <iostream>
using std::cin;
using std::cout;int main(){cin.tie(nullptr)->sync_with_stdio(false);char c;int a,b;while(cin >> c >> a >> b){for(int i = 1;i<=a;i++){if(i<=b){for(int j = 1;j<=29;j++){if(j&1) cout << c;else cout << ' ';}}else{for(int j = 1;j<=29;j++){if(j%4==1) cout << c;else cout << ' ';}}cout << '\n';}cout << '\n';}return 0;
} 

问题 D: 倒置排序 

acc1f88b0d6d48cab86d673320f738e5.png 

思路:

        求一下倒置后的数字,都放进一个pair或者结构体中排序后输出即可。

参考题解:

#include <iostream>
#include <vector>
#include <algorithm>
using std::cin;
using std::cout;
using std::vector;
int main(){cin.tie(nullptr)->sync_with_stdio(false);constexpr int N = 1e2+5;int _ = 1;cin >> _;auto solve = [&](){int n;cin >> n;vector<std::pair<int,int>> ans(N+1);for(int i = 1;i<=n;i++){int tmp;cin >> tmp;ans[i].second = tmp;int rev = 0;while(tmp){rev = rev*10+tmp%10;tmp/=10;}ans[i].first = rev;}std::sort(ans.begin()+1,ans.begin()+1+n);for(int i = 1;i<=n;i++) cout << ans[i].second << " \n"[i==n];};while(_--) solve();return 0;
} 

问题 E: 按日期排序 

a351f2aafc314e66a741b4ab0f1b25a0.png 

思路:
        这题是为数不多用C++的输入输出流不好读入的情况,那就用scanf和printf来实现输入输出,一个日期是一个结构体,在结构体内重载一下小于号,然后sort()一遍输出即可。

参考题解:

#include <iostream>
#include <cstdio>
#include <vector>
#include <algorithm>
using std::vector;
int main(){struct node{int m,d,y;bool operator < (const node &W) const {if(y!=W.y) return y<W.y;else if(m!=W.m) return m<W.m;else return d<W.d;}};vector<node> ans;int month,day,year;while(~scanf("%d/%d/%d",&month,&day,&year)){ans.push_back({month,day,year});}std::sort(ans.begin(),ans.end());for(auto &t:ans){printf("%02d/%02d/%04d\n",t.m,t.d,t.y);}return 0;
} 

 问题 F: 统计图

83e923fc37b343dc81d9ec593cd44ba1.png 

思路:

        这个题也要注意输出的时候每两个字符之间都是有空格的,之前没发现WA了一次。具体思路是使用getline()或者gets()整行整行读,使用map对所有的大写字母进行计数,还需要统计这其中字符出现的最多的次数用于判断输出的行数(记为maxn),每行遍历时对应判断该行的行数(行数是从maxn到1的)是否小于等于该字母出现的次数。

参考题解:

#include <iostream>
#include <string>
#include <map>
#include <algorithm>
using std::cin;
using std::cout;
using std::string;
using std::map;
int main(){cin.tie(nullptr)->sync_with_stdio(false);string line;map<char,int> mp;while(getline(cin,line)){for(auto &c:line){if(c>='A'&&c<='Z') mp[c]++;}}int maxn = -1;for(auto &i:mp) maxn = std::max(maxn,i.second);for(int i = maxn;i>=1;i--){for(int j = 1;j<=51;j++){if(j&1){if(i<=mp['A'+(j+1)/2-1]) cout << '*';else cout << ' ';}else{cout << ' ';}}cout << '\n';}for(int i = 1;i<=51;i++){if(i&1){cout << char('A'+(i+1)/2-1);}else{cout << ' ';}}cout << '\n';return 0;
} 

问题 G: 找子串

616aa45ab8ce45b8807c94ff47b69d88.png 

思路:

        使用<string>的find()库函数即可。

参考题解:

#include <iostream>
#include <string>
using std::cin;
using std::cout;
using std::string;
int main(){cin.tie(nullptr)->sync_with_stdio(false);string s,t;while(cin >> s >> t){cout << (s.find(t)==string::npos?"No\n":"Yes\n");}return 0;
} 

问题 H: 火星数排序 

0838717bbee54768bb91896e2b1b976d.png 

 思路:

        注意看清题目,读入的是火星数,要我们排序后输出排序后的火星数。具体思路就是读入火星数,然后转换成地球数进行排序(以地球数为第一关键字),输出最终的结果即可。储存这些两个数可以分别用两个数组,或者是一个结构体数组,也可以是一个pair数组。

参考题解:

#include <iostream>
#include <string>
#include <vector>
#include <map>
#include <algorithm>
using std::cin;
using std::cout;
using std::string;
using std::vector;
using std::map;
int main(){cin.tie(nullptr)->sync_with_stdio(false);map<int,int> mp = {{0,0},{8,1},{1,2},{5,3},{2,4},{3,5},{9,6},{4,7},{7,8},{6,9}};int _ = 1;cin >> _;auto solve = [&](){int n;cin >> n;vector<std::pair<int,int>> a;for(int i = 0;i<n;i++){int Mars;cin >> Mars;int tmp = Mars;vector<int> v;while(tmp){v.emplace_back(tmp%10);tmp/=10;}int earth = 0;std::reverse(v.begin(),v.end());for(auto &j:v){earth = earth*10 + mp[j];}a.emplace_back(earth,Mars);}std::sort(a.begin(),a.end());for(int i = 0;i<a.size();i++){cout << a[i].second << ' ';}cout << '\n';};while(_--) solve();return 0;
} 

问题 I: 字串数 

34f4edb52009452383072406f2f00ebf.png 

思路:

        推出公式:ans = (sum!)/(a1!*a2!*...*an!)。其中,sum表示数组a的和。因为数据会非常大,使用C++写的话,会爆long long,那要写高精度。如果图方便的话,就直接用Java的大整数类来写了。当然,python也能写,只不过ZISUOJ平台的python解释器有点问题,有数据读入的情况就会出错。

参考题解1(C++高精度实现):

#include <bits/stdc++.h>
using namespace std;
using ll = long long;
vector<int> div(vector<int> &A,ll b){//高精度除法 (高精度数 除以 非高精度数)ll r = 0;vector<int> C;for (int i = A.size()-1; i>=0;i--){r = r * 10 + A[i];C.push_back(r / b);r %= b;}reverse(C.begin(),C.end());while (C.size()>1&&C.back()==0) C.pop_back();//去除高位零return C;
}
vector<int> mult1(int sum){//高精度阶乘vector<int> C;C.push_back(1);int i, j, temp = 0;int item = 0;for(i = 2; i <= sum; i++){for (j = 0; j < C.size(); j++) {item = C[j] * i + temp;C[j] = item % 10;temp = item / 10;}while(temp){C.push_back(temp % 10);temp /= 10;}}return C;
}
int mult2(int n){//普通阶乘int sum = 1;for (int i = 2; i <= n; i++) sum *= i;return sum;
}
int main(){ios::sync_with_stdio(false),cin.tie(nullptr),cout.tie(nullptr);int n;while(cin >> n){if (n == 0) break;int sum = 0;long long a[27];for(int i = 1;i<=n; i++){cin >> a[i];sum += a[i];}vector<int> C = mult1(sum);for(int i = 1; i <= n; i++){      //运用累除的方法可以简化为高精度除以非高精度 我事先判断了12的阶乘在int的存储范围内C = div(C, mult2(a[i]));}for(int i = C.size() - 1;i>=0;i--) cout << C[i];cout << endl;}return 0;
}

参考题解2(Java大整数类实现):

import java.util.Scanner;
import java.math.BigInteger;
public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int n;while(sc.hasNextInt()){n = sc.nextInt();if(n==0) break;long sum = 0;int[] a = new int[27];for(int i = 1;i<=n;i++){a[i] = sc.nextInt();sum += a[i];}BigInteger ans = BigInteger.ONE;for(int i = 1;i<=sum;i++){ans = ans.multiply(BigInteger.valueOf(i));}for(int i = 1;i<=n;i++){long tmp = 1;for(int j = 1;j<=a[i];j++){tmp = tmp * j;}ans = ans.divide(BigInteger.valueOf(tmp));}System.out.println(ans);}}
}

 参考题解3(Python整型再大也能存的下):

from math import factorial
from sys import stdinfor line in stdin:n = int(line.strip())if n == 0:breaka = list(map(int, stdin.readline().strip().split()))sum_a = sum(a)ans = factorial(sum_a)for num in a:ans //= factorial(num)print(ans)

问题 J: 寻找素数对

e5e7a3fa101c4c4b9b08a86011e08d1e.png 

思路:

        从n/2开始往左找(循环体变量假设为i),如果i和n-i都是素数直接输出并且break掉循环。

参考题解:

#include <iostream>
using std::cin;
using std::cout;
int main(){cin.tie(nullptr)->sync_with_stdio(false);auto isPrime = [&](int num)->bool{if(num<2) return false;for(int i = 2;i<=num/i;i++) if(num%i==0) return false;return true;};int m;while(cin >> m,m){int mid = m/2;for(int i = mid;i>=2;i--){if(!isPrime(i)) continue;if(isPrime(m-i)){cout << i << ' ' << m-i << '\n';break;}}}return 0;
} 

问题 K: 水果 

c72d0da288f94170972de5ea496e2407.png 

思路:
        最快最直接的方法就是用二维map来存,然后直接输出(它甚至都不需要任何的排序,因为map内部是红黑树实现,默认就是有序的)。

参考题解:

#include <iostream>
#include <map>
#include <string>
using std::cin;
using std::cout;
using std::map;
using std::string;
int main(){cin.tie(nullptr)->sync_with_stdio(false);auto solve = [&](){map<string,map<string,int>> mp;int n;cin >> n;for(int i = 1;i<=n;i++){string fruit,province;int num;cin >> fruit >> province >> num;mp[province][fruit]+=num;}for(auto &pro:mp){cout << pro.first << '\n';for(auto &fru:pro.second){cout << "   |----" << fru.first << '(' << fru.second << ")\n";}}cout << '\n';};int _ = 1;cin >> _;while(_--) solve();return 0;
} 

问题 L: 排名次

5268484f48844dc78a203b18da7f6028.png 

思路:

        结构体排序的基本题(当然用pair也可以)。

参考题解:

#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
using std::cin;
using std::cout;
using std::string;
using std::vector;
int main(){cin.tie(nullptr)->sync_with_stdio(false);vector<std::pair<int,string>> ans;int n;cin >> n;for(int i = 1;i<=n;i++){string name;int score;cin >> name >> score;ans.emplace_back(score,name);}std::sort(ans.begin(),ans.end(),[&](const std::pair<int,string> &p1,const std::pair<int,string> &p2){if(p1.first!=p2.first) return p1.first>p2.first;else return p1.second<p2.second;});for(auto &t:ans) cout << t.second << ' ' << t.first << '\n';return 0;
} 

问题 M: 奇怪的处理器

753c35921aeb4f55aa564524a3e4e9ff.png 

思路:

        看懂题目就很好写了,实际上题目就是让我们从左往右找第一个出现'0'的位置,如果没出现'0',那么答案就是整个长度。如果用string读入,用<string>的库函数find_first_of()可以直接秒。

参考题解:

#include <bits/stdc++.h>
using namespace std;
int main(){ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);int n;cin >> n;string s;cin >> s;cout << (s.find_first_of('0')!=string::npos?s.find_first_of('0')+1:n) << '\n'; return 0;
}

问题 N: 打印格子

c33fb2ca68d9401cad17e973ea08c788.png 

思路:

        第一第二行都比较好写,第三行和第四行模拟一下从对应的最初位置开始到碰到边界结束即可。

参考题解:

#include <iostream>
using std::cin;
using std::cout;
int main(){cin.tie(nullptr)->sync_with_stdio(false);int n,x,y;cin >> n >> x >> y;for(int i = 1;i<=n;i++) cout << '(' << x << ',' << i << ')' << " \n"[i==n];for(int i = 1;i<=n;i++) cout << '(' << i << ',' << y << ')' << " \n"[i==n];int tmpx = x,tmpy = y;while(tmpx!=1&&tmpy!=1){--tmpx,--tmpy;}while(tmpx!=n+1&&tmpy!=n+1){cout << '(' << tmpx << ',' << tmpy << ')' << " \n"[tmpx==n||tmpy==n];++tmpx,++tmpy;}tmpx = x,tmpy = y;while(tmpx!=n&&tmpy!=1){++tmpx,--tmpy;}while(tmpx!=0&&tmpy!=n+1){cout << '(' << tmpx << ',' << tmpy << ')' << " \n"[tmpx==1||tmpy==n];--tmpx,++tmpy;}return 0;
} 

问题 P: 孜谦的双重素数

a6aec08517fd4bb0bf1347c6dc092121.png 

思路:

        1.暴力法:如果直接外层跑for循环(假设循环变量为i),内层先判断i是否为素数跑循环,再判断i的各位数之和是否为素数,那会TLE超时;正确的做法是,内层循环先判断i的各位数之和是否为素数,再去判断i是否为素数。因为i可能会很大,如果先直接判断i的素性,那么时间复杂度最坏是O(T*((R-L+1)*sqrt(R))),最坏大约是3e10的数据量,在5s内肯定处理不了。

        2.欧拉筛(也称线性筛)+前缀和预处理:用使用欧拉筛法预处理出1~3e6内所有数的素性,在遍历一遍1~3e6(假设循环遍历为i),计算出i的各位数之和,如果i和i的各位数之和都为素数,则prefix[i]=prefix[i-1]+1否则prefix[i]=prefix[i-1]。欧拉筛和前缀和的预处理的时间复杂度都为O(n),预处理的数据量为3e6左右,而处理查询的时间复杂度是O(1)。

参考题解1(暴力法):

#include <bits/stdc++.h>
using namespace std;
bool isPrime(int num){if(num<2) return false;for(int i = 2;i<=num/i;i++) if(num%i==0) return false;return true;
}
void solve(){int l,r;cin >> l >> r;int cnt = 0;for(int i = l;i<=r;i++){int tmp = i,sum = 0;while(tmp){sum+=tmp%10;tmp/=10;}if(!isPrime(sum)) continue;if(!isPrime(i)) continue;cnt++;}cout << cnt << '\n';
}
int main() {ios::sync_with_stdio(false),cin.tie(nullptr),cout.tie(nullptr);int T = 1;cin >> T;while(T--) solve();return 0;
}

参考题解2(欧拉筛+前缀和):

#include <iostream>
using std::cin;
using std::cout;
constexpr int N = 3e6+5;
int cnt,prime[N],sum[N];
int prefix[N];
bool vis[N];
void get_primes(int n){for(int i = 2;i<=n;i++){if(!vis[i]) prime[cnt++]=i;for(int j = 0;prime[j]<=n/i;j++){vis[prime[j]*i]=1;if(i%prime[j]==0) break;}}
}
int main(){std::ios::sync_with_stdio(false),cin.tie(nullptr),cout.tie(nullptr);get_primes(int(3e6));vis[0]=vis[1]=1;for(int i = 1;i<=3e6;i++){int t = i,tmp = 0;while(t){tmp+=t%10;t/=10;}sum[i]=tmp;}for(int i = 1;i<=3e6;i++){if(!vis[sum[i]]&&!vis[i]) prefix[i]=prefix[i-1]+1;else prefix[i]=prefix[i-1];}int _ = 1;cin >> _;;while(_--){int l,r;cin >> l >> r;cout << prefix[r]-prefix[l-1] << '\n';}return 0;
}

问题 Q: 矩阵的局部极大值

5b7688efe5ff44c6b9cb24fe365b4e8b.png 

思路:
        从内层矩形开始遍历判断即可,满足条件就放进vector,最后先判断vector的大小,如果为0,要特殊处理输出,否则,顺序输出结果即可(因为遍历的时候就是有序的,所以不用再排序了)。

参考题解:

#include <iostream>
#include <vector>
#pragma GCC O(2)
using std::cin;
using std::cout;
using std::pair;
using std::vector;
int main(){cin.tie(nullptr)->sync_with_stdio(false);constexpr int N = 25;int g[N][N];int dx[] = {0,0,-1,1};int dy[] = {-1,1,0,0};vector<pair<pair<int,int>,int>> ans; int n,m;cin >> n >> m;for(int i = 1;i<=n;i++) for(int j = 1;j<=m;j++) cin >> g[i][j];for(int i = 2;i<=n-1;i++){for(int j = 2;j<=m-1;j++){int flag = 1;for(int k = 0;k<4;k++){int u = i+dx[k],v = j+dy[k];if(g[i][j]<=g[u][v]){flag = 0;break;}}if(flag) ans.push_back({{i,j},g[i][j]});}}if(!ans.size()) cout << "None " << n << ' ' << m << '\n';else{for(auto &t:ans){cout << t.second << ' ' << t.first.first << ' ' << t.first.second << '\n';}}return 0;
}

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/830017.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

leetcode-包含min函数的栈-93

题目要求 题目思路 1.设计上两个栈&#xff0c;第一个栈s1里面正常存储插入进来的数据&#xff0c;s2里面只存储s1里面最小的那个数据。 2.对于push函数&#xff0c;所有新来的value都需要在s1中插入&#xff0c;s2中&#xff0c;如果s2为空&#xff0c;那么也直接插入&#x…

动手学大模型LLM应用开发之个人知识库助手项目

目录 一、前言二、项目架构三、项目搭建运行四、RAG过程五、参考资料 一、前言 本项目由datawhale成员开发&#xff0c;主要实现了基于 Datawhale 的现有项目 README 的知识问答&#xff0c;使用户可以快速了解 Datawhale 现有项目情况。 项目地址 二、项目架构 ① LLM 层主要…

《面向云计算的零信任体系第1部分:总体架构》行业标准正式发布

中华人民共和国工业和信息化部公告2024年第4号文件正式发布行业标准&#xff1a;YD/T 4598.1-2024《面向云计算的零信任体系 第1部分&#xff1a;总体架构》&#xff08;后简称“总体架构”&#xff09;&#xff0c;并于2024年7月1日正式施行。 该标准由中国信通院牵头&#xf…

【汇编】#6 80x86指令系统其二(串处理与控制转移与子函数)

文章目录 一、串处理指令1. 与 REP 协作的 MOVS / STOS / LODS的指令1.1 重复前缀指令REP1.2 字符串传送指令&#xff08;Move String Instruction&#xff09;1.2 存串指令&#xff08;Store String Instruction&#xff09;1.3 取字符串指令&#xff08;Load String Instruct…

word启动缓慢之Baidu Netdisk Word Addin

word启动足足花了7秒钟&#xff0c;你知道我这7秒是怎么过来的吗&#xff1f; 原因就是我们可爱的百度网盘等APP&#xff0c;在我们安装客户端时&#xff0c;默认安装了Office加载项&#xff0c;不仅在菜单栏上加上了一个丑陋的字眼&#xff0c;也拖慢了word启动速度........ 解…

Spark-机器学习(7)分类学习之决策树

在之前的文章中&#xff0c;我们学习了分类学习之支持向量机&#xff0c;并带来简单案例&#xff0c;学习用法。想了解的朋友可以查看这篇文章。同时&#xff0c;希望我的文章能帮助到你&#xff0c;如果觉得我的文章写的不错&#xff0c;请留下你宝贵的点赞&#xff0c;谢谢。…

C++证道之路第十三章类继承

一、一个简单的基类 从一个类派生出另一个类时&#xff0c;原始类称为基类&#xff0c;继承类称为派生类。 派生类对象储存了基类的数据成员&#xff08;派生类继承了基类的实现&#xff09;。 派生类对象可以使用基类的方法&#xff08;派生类继承了基类的接口&#xff09;…

PY32F040单片机产品介绍,LQFP封装,带LCD 驱动器

PY32F040单片机搭载了 Arm Cortex-M0内核&#xff0c;最高主频可达72 MHz&#xff0c;专为高性价比、高可靠性的系统而设计&#xff0c;符合消费市场的基本设计需求。可广泛应用于电机控制、手持设备、PC 外设、以及复杂的数字控制应用等领域。 PY32F040片内集成 UART、I2C、S…

手机空号过滤,提高工作效率

手机空号过滤在多个方面都具有重要的作用。 首先&#xff0c;它对于短信群发商和电话营销商来说至关重要。通过空号过滤&#xff0c;他们可以确保手机号码数据库的准确性和有效性。由于每天都有大量人群因各种原因更换手机号码&#xff0c;导致每个号段中的空号率和手机状态都…

Debian 系统设置SSH 连接时长

问题现象&#xff1a; 通过finalshell工具连接Debian系统远程操作时&#xff0c;总是一下断开一下断开&#xff0c;要反复重新连接 &#xff0c;烦人&#xff01; 解决办法&#xff1a; 找到ssh安装目录下的配置文件&#xff1a;sshd_config vi sshd_config &#xff1a; 找到…

【喜报】科大睿智为武汉博睿英特科技高质量通过CMMI3级评估咨询工作

武汉博睿英特科技有限公司是信息通信技术产品、建筑智慧工程服务提供商。其拥有专注于航空、政府、教育、金融等多行业领域的资深团队&#xff0c;及时掌握最新信息通信应用技术&#xff0c;深刻理解行业业务流程&#xff0c;擅于整合市场优质资源&#xff0c;积极保持与高校产…

STM32 SPI通信

一、SPI总线简介 1.1 SPI总线 串口外设接口&#xff08;Serial Peripheral Interface&#xff0c;SPI&#xff09;总线是一种同步串行外设接口&#xff0c;允许MCU与各种外围设备进行全双工、同步串行通信 SPI总线有四根通信线&#xff1a; ①SCK&#xff08;Serial Clock&a…

linux的压缩与备份

一、打包 格式&#xff1a;tar -参数 <打包文件名> <打包的目标> 作用&#xff1a;将文件或者目录打包 重要参数&#xff1a;-f 使用归档文件&#xff0c;一定要加上这个参数 -c 新建打包文件 -x 解包文件 -t 可以不用解包就能查看包文件内容 -v 打包和解包时显…

JVM的垃圾回收机制(GC机制)

在Java代码运行的过程中&#xff0c;JVM发现 某些资源不需要再使用的时候&#xff0c;就会自动把资源所占的内存给回收掉&#xff0c;就不需要程序员自行操作了。“自动回收资源”就是JVM的“垃圾回收机制”&#xff0c;“垃圾回收机制”也称"GC机制"。 对于Java代码…

C语言指针进阶_字符指针、指针数组、数组指针、函数指针等的介绍

文章目录 前言一、字符指针二、指针数组三、 数组指针1. 数组名和 & 数组名2. 数组指针3. 数组指针解引用 四、数组指针的使用二维数组的传参说明数组指针使用小测验 五、数组传参和指针传参1. 一维数组传参总结2. 二维数组传参总结3. 一级指针传参4. 二级指针传参 六、函数…

java案例-服务端与客户端(传输对象)

需求 代码 SysUser 用户类Operation 操作类Client 客户端Server 服务端ServerReaderThread 服务端线程类 SysUser 用户类 需要实现Serializable 方便序列化&#xff0c;传输对象 public class SysUser implements Serializable {private String username;private String passwo…

kerberos-hive-dbeaver问题总结

一、kerberos安装windows客户端 1、官方下载地址 http://web.mit.edu/kerberos/dist/ 2、环境变量配置 下载msi安装包&#xff0c;无需重启计算机&#xff0c;调整环境变量在jdk的前面&#xff0c;尽量靠前&#xff0c;因为jdk也带了kinit、klist等命令 C:\Program Files\…

【Node.js工程师养成计划】之原生node开发web服务器

一、使用node创建http服务器 var http require(http);// 获取到服务器实例对象 var server http.createServer() server.listen(8080, function() {console.log(http://127.0.0.1:8080); })server.on(request, function(req, res){console.log(request);res.write(6666666688…

如何利用 GPT 自我提高写作能力

GPT革命&#xff1a;如何用AI技术重新定义写作 介绍 在我们的数字时代&#xff0c;了解自我提高写作的必要性至关重要。 随着 GPT 的兴起&#xff0c;我们正在见证书写的变革时代。 这篇扩展文章深入探讨了 GPT 如何显着提高写作技能。 拥抱未来&#xff1a; 人工智能时代的写…

Maven介绍 主要包括Maven的基本介绍,作用,以及对应的Maven模型,可以对Maven有一个基本的了解

1、Maven介绍 1.1 什么是Maven Maven是Apache旗下的一个开源项目&#xff0c;是一款用于管理和构建java项目的工具。 官网&#xff1a;https://maven.apache.org/ Apache 软件基金会&#xff0c;成立于1999年7月&#xff0c;是目前世界上最大的最受欢迎的开源软件基金会&…