当前位置: 首页 > news >正文

2.23C语言学习

P1480 A/B Problem

高精度数除以非高精度数

#include<bits/stdc++.h>
long long b[66660],c[66660],sum=0;
char a[66660];
int n;
int main(){scanf("%s",a);scanf("%d",&n);int len=strlen(a);for(int i=1;i<=len;i++){b[i]=a[i-1]-'0';}for(int i=1;i<=len;i++){c[i]=(b[i]+sum*10)/n;sum=(b[i]+sum*10)%n;}int flag=1;while(c[flag]==0&&flag<len)flag++;for(int i=flag;i<=len;i++){printf("%lld",c[i]);}return 0;
}

P1109 学生分组

如果总人数在范围内,就不用输出-1

我们先用一个数组存下每个组的初始人数

那么,只有人数小于下限或大于上限才要调整 所有组多出来的人数和所有组缺的人数分别记成x、y x、y中更大的那个调到在范围内的组和范围外的组 所以,输出x、y中多的那个就可以了 

#include<bits/stdc++.h>
using namespace std;
int main(){int n,a[60],sum=0;scanf("%d",&n);for(int i=1;i<=n;i++){scanf("%d",&a[i]);sum+=a[i];}int left,right,suma=0,sumb=0;scanf("%d %d",&left,&right);for(int i=1;i<=n;i++){if(a[i]<left){suma+=left-a[i];}else if(a[i]>right){sumb+=a[i]-right;}}if(sum<n*left||sum>n*right){printf("-1");return 0;}int ans=max(suma,sumb);printf("%d",ans);return 0;
}

 P2708 硬币翻转

当这一个硬币与下一个硬币不同时,这一个硬币连同它之前的硬币一起翻转

翻转至与下一个硬币相同的一面

直到将所有硬币翻转到同一面

但这里还有一个点要注意:

题目要求所有硬币正面朝上,也就是所有面都是'1'的情况,才算完成

我们就再把全部硬币翻转一次

那么这道题就好解决了

#include<bits/stdc++.h>
using namespace std;
int main(){string str;cin>>str;int cnt=0;for(int i=0;i<str.size()-1;i++){if(str[i]!=str[i+1])cnt++;}if(str[str.size()-1]=='0')cnt++;printf("%d",cnt);return 0;
}

P1421 小玉买文具

水题,会写hello world都会写这个

#include<bits/stdc++.h>
using namespace std;
int main(){int x,y;cin>>x>>y;int sum=x*10+y;int nunm=sum/19;cout<<nunm;return 0;
}

P1060 [NOIP2006 普及组] 开心的金明

01背包问题,对着模板来就行了

#include<bits/stdc++.h>
using namespace std;
int w[31],s[31],dp[30009];
int main(){int n,m;scanf("%d %d",&m,&n);for(int i=1;i<=n;i++){scanf("%d %d",&w[i],&s[i]);}for(int i=1;i<=n;i++){for(int j=m;j>=w[i];j--){dp[j]=max(dp[j],dp[j-w[i]]+w[i]*s[i]);}}cout<<dp[m];return 0;
}

B3849 [GESP样题 三级] 进制转换

经典的精致转换,这里也是把我的板子献上

#include <bits/stdc++.h>
using namespace std;
int main()
{int a, b, cnt = 0;char arr[320] = { 0 };scanf("%d %d",&a,&b);while (a > 0) {int c = a % b;if (c > 9) {arr[cnt++] = (char)(c + 55);}else {arr[cnt++] = (char)(c + 48);}a /= b;}for (int j = cnt - 1; j >= 0; j--){cout << arr[j];}return 0;
}

http://www.lryc.cn/news/306628.html

相关文章:

  • origin/master master
  • 【数据结构】时间复杂度与空间复杂度
  • 分别使用js与jquery写 单击按钮时出现内容 点击删除按钮不会再向下出现
  • 【Git】Git命令的学习与总结
  • 前端工程化面试题 | 18.精选前端工程化高频面试题
  • 大公司的工程师是怎么废掉的...
  • 将yolov8权重文件转为onnx格式并在c#中使用
  • 在Spring Boot启动时禁止自动配置数据源相关的组件、@SpringBootApplication
  • 程序人生:不积跬步无以致千里
  • 通过二叉树例题深入理解递归问题
  • 【Android 协程常见用法】
  • python 进程笔记一 (概念+示例代码)
  • 各中间件数据库默认访问端口总结
  • 鲲鹏arm64架构下安装KubeSphere
  • python 函数-02-返回值注释格式
  • 【前端素材】推荐优质后台管理系统Upcube平台模板(附源码)
  • 可视化 RAG 数据 — 用于检索增强生成的 EDA
  • 数学建模论文、代码百度网盘链接
  • mysql 迁移-data目录拷贝方式
  • 学习 LangChain 的 Passing data through
  • C# OpenVINO PaddleSeg实时人像抠图PP-MattingV2
  • 【Android 11】AOSP Settings WIFI随机MAC地址功能
  • dmrman备份还原
  • 网页403错误(Spring Security报异常 Encoded password does not look like BCrypt)
  • 单细胞多组学整合与对齐的计算方法
  • 33.openeuler OECA认证模拟题16
  • javaScript数组去重的几种实现方式——适用非引用数据去重
  • Nexus Repository Manager
  • Python世界之运算符
  • 蓝桥杯倒计时47天!DFS基础——图的遍历