新幻灯片
2023-11-05 17:03:07 By 快乐的熊果
GESPC++4级编程题题解
2023-09-23 12:36:29 By 快乐的熊果
前言:目前只做了第一题,第二题后面补罢。
第一题:
题目描述(很像#376):
输入一个整数N,在输入N行,每行有一个K(2<=K<=16),还有一个K进制的M(最多只有9位)。要求输出M的十进制。(经过简化,等真题出来再改)
转换进制很简单,如下(照抄#376):比如(10101)2 ,那么它的十进制表示的式子就是 :1X2^4+0X2^3+1X2^2+0X2^1+1X2^0,
根据此思路,我们就可以写出这样的代码(有些思路没有写出,代码里有注释):
#include <bits/stdc++.h>//万能头文件
using namespace std;
int main(){
int n;
cin>>n;
int k;
string m;
for(int i=1;i<=n;i++){
cin>>k>>m;
int t=0;//第几位
int sum=0;//结果
int t2=0;//因为是字符串,要转成数字
int t3=0;//临时打工仔
for(int j=m.size()-1;j>=0;j--){//从后面开始
if((int)(m[j]-'0')>=0&&(int)(m[j]-'0')<=9){//如果是数字
t2=(int)(m[j]-'0');
}
else{//大于十
if(m[j]=='A'){
t2=10;
}
if(m[j]=='B'){
t2=11;
}
if(m[j]=='C'){
t2=12;
}
if(m[j]=='D'){
t2=13;
}
if(m[j]=='E'){
t2=14;
}
if(m[j]=='F'){//最多只到16进制
t2=15;
}
}
t3=pow(k,t);//pow(n,k)=n的k次方,需要cmath头文件
sum+=t2*t3;
t++;
}
cout<<sum;//输出结果
}
}
测试数据完美通过,可是交上去1分没有,也没有其他错误呀?
想想xushuoxin说的话:十年OI一场空,不开long long 见祖宗。
上面说过,最多有9位数字,如果是16进制那就是16的9次方,最大情况就是15X6的9次方,就是15461882265600。而int只能存放2147483647的数据。远远超过了int的最大范围。
所以要开long long!
不AC代码
#include <bits/stdc++.h>//万能头文件
using namespace std;
int main(){
int n;
cin>>n;
int k;
string m;
for(int i=1;i<=n;i++){
cin>>k>>m;
long long t=0;//第几位
long long sum=0;//结果
long long t2=0;//因为是字符串,要转成数字
long long t3=0;//临时打工仔
for(int j=m.size()-1;j>=0;j--){//从后面开始
if((int)(m[j]-'0')>=0&&(int)(m[j]-'0')<=9){//如果是数字
t2=(int)(m[j]-'0');
}
else{//大于十
if(m[j]=='A'){
t2=10;
}
if(m[j]=='B'){
t2=11;
}
if(m[j]=='C'){
t2=12;
}
if(m[j]=='D'){
t2=13;
}
if(m[j]=='E'){
t2=14;
}
if(m[j]=='F'){//最多只到16进制
t2=15;
}
}
t3=pow(k,t);//pow(n,k)=n的k次方,需要cmath头文件
sum+=t2*t3;
t++;
}
cout<<sum;//输出结果
}
}
但是为什么交上去还是0分啊!
哦忘记加endl了
真·完结撒花(不喜勿喷)
#include <bits/stdc++.h>//万能头文件
using namespace std;
int main(){
int n;
cin>>n;
int k;
string m;
for(int i=1;i<=n;i++){
cin>>k>>m;
long long t=0;//第几位
long long sum=0;//结果
long long t2=0;//因为是字符串,要转成数字
long long t3=0;//临时打工仔
for(int j=m.size()-1;j>=0;j--){//从后面开始
if((int)(m[j]-'0')>=0&&(int)(m[j]-'0')<=9){//如果是数字
t2=(int)(m[j]-'0');
}
else{//大于十
if(m[j]=='A'){
t2=10;
}
if(m[j]=='B'){
t2=11;
}
if(m[j]=='C'){
t2=12;
}
if(m[j]=='D'){
t2=13;
}
if(m[j]=='E'){
t2=14;
}
if(m[j]=='F'){//最多只到16进制
t2=15;
}
}
t3=pow(k,t);//pow(n,k)=n的k次方,需要cmath头文件
sum+=t2*t3;
t++;
}
cout<<sum<<endl;//输出结果
}
}
提醒:禁止抄袭(好像网站上还没这题)
我的沙雕头像
2023-07-26 14:56:44 By 快乐的熊果
video.helloworldroom.com/files/user/2023/07-25/14363420cfc7027229.jpeg
推荐歌曲(以后会更新)
2023-07-25 13:56:10 By 快乐的熊果
1.Midnight City(R星的小曲)
2.This Girl(Shot On The Iphone)
3.Unwelcome School(银行不妙曲)
4.Nevada(Minecraft的小曲)
5.Deja Vu(逮虾户)(唱的人是Various Artists)
6.My Happy Song(happy happy happy)
7.Energy Drink(纯音乐,不好描述)
人都去哪啦?
2023-07-06 12:02:56 By 快乐的熊果
是不是暑假出去玩了除了打卡基本不上helloworld网站(反正我是这样)
看2022年提交记录有感
2023-05-14 18:00:02 By 快乐的熊果
7048顺序表元素的删除
以前的我是这样写的
#include<bits/stdc++.h>
using namespace std;
int main(){
int n;
cin>>n;
int a[n+1];
for(int i=1;i<=n;i++){
cin>>a[i];
}
int x;
cin>>x;
for(int i=x+1;i<=n;i++){
a[i-1]=a[i];
}
n--;
for(int i=1;i<=n;i++){
cout<<a[i]<<' ';
}
return 0;
}
麻烦,垃圾!
后面再做这道题
#include <bits/stdc++.h>
using namespace std;
int main(){
int n;
cin>>n;
int a[n+1];
for(int i=1;i<=n;i++){
cin>>a[i];
}
int x;
cin>>x;
for(int i=1;i<x;i++){
cout<<a[i]<<' ';
}
for(int i=x+1;i<=n;i++){
cout<<a[i]<<' ';
}
return 0;
}
简洁,易懂
752是用二分做吗?
2023-05-04 22:36:35 By 快乐的熊果
看标题
#96竟然没人AC过?
2023-04-30 17:20:15 By 快乐的熊果
羻奊褱驛
#1689题目描述有误
2023-04-30 16:52:46 By 快乐的熊果
以下是题目描述的一部分
Ever the maturing businessman, Farmer John realizes that he must manage his time effectively.
注意,是Farmer John
而中文是:作为一名忙碌的商人,约翰知道必须高效地安排他的时间.
是我英语学错了还是我看错了?
我好慌
2023-04-29 18:23:03 By 快乐的熊果
要是今天比赛没扣Rating我让xushuoxin把账号给我
共 28 篇博客