• 2.23C语言学习


    P1480 A/B Problem

    高精度数除以非高精度数

    1. #include
    2. long long b[66660],c[66660],sum=0;
    3. char a[66660];
    4. int n;
    5. int main(){
    6. scanf("%s",a);
    7. scanf("%d",&n);
    8. int len=strlen(a);
    9. for(int i=1;i<=len;i++){
    10. b[i]=a[i-1]-'0';
    11. }
    12. for(int i=1;i<=len;i++){
    13. c[i]=(b[i]+sum*10)/n;
    14. sum=(b[i]+sum*10)%n;
    15. }
    16. int flag=1;
    17. while(c[flag]==0&&flag
    18. for(int i=flag;i<=len;i++){
    19. printf("%lld",c[i]);
    20. }
    21. return 0;
    22. }

    P1109 学生分组

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

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

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

    1. #include
    2. using namespace std;
    3. int main(){
    4. int n,a[60],sum=0;
    5. scanf("%d",&n);
    6. for(int i=1;i<=n;i++){
    7. scanf("%d",&a[i]);
    8. sum+=a[i];
    9. }
    10. int left,right,suma=0,sumb=0;
    11. scanf("%d %d",&left,&right);
    12. for(int i=1;i<=n;i++){
    13. if(a[i]
    14. suma+=left-a[i];
    15. }
    16. else if(a[i]>right){
    17. sumb+=a[i]-right;
    18. }
    19. }
    20. if(sumn*right){
    21. printf("-1");
    22. return 0;
    23. }
    24. int ans=max(suma,sumb);
    25. printf("%d",ans);
    26. return 0;
    27. }

     P2708 硬币翻转

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

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

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

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

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

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

    那么这道题就好解决了

    1. #include
    2. using namespace std;
    3. int main(){
    4. string str;
    5. cin>>str;
    6. int cnt=0;
    7. for(int i=0;isize()-1;i++){
    8. if(str[i]!=str[i+1])cnt++;
    9. }
    10. if(str[str.size()-1]=='0')cnt++;
    11. printf("%d",cnt);
    12. return 0;
    13. }

    P1421 小玉买文具

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

    1. #include
    2. using namespace std;
    3. int main(){
    4. int x,y;
    5. cin>>x>>y;
    6. int sum=x*10+y;
    7. int nunm=sum/19;
    8. cout<
    9. return 0;
    10. }

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

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

    1. #include
    2. using namespace std;
    3. int w[31],s[31],dp[30009];
    4. int main(){
    5. int n,m;
    6. scanf("%d %d",&m,&n);
    7. for(int i=1;i<=n;i++){
    8. scanf("%d %d",&w[i],&s[i]);
    9. }
    10. for(int i=1;i<=n;i++){
    11. for(int j=m;j>=w[i];j--){
    12. dp[j]=max(dp[j],dp[j-w[i]]+w[i]*s[i]);
    13. }
    14. }
    15. cout<
    16. return 0;
    17. }

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

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

    1. #include
    2. using namespace std;
    3. int main()
    4. {
    5. int a, b, cnt = 0;
    6. char arr[320] = { 0 };
    7. scanf("%d %d",&a,&b);
    8. while (a > 0) {
    9. int c = a % b;
    10. if (c > 9) {
    11. arr[cnt++] = (char)(c + 55);
    12. }
    13. else {
    14. arr[cnt++] = (char)(c + 48);
    15. }
    16. a /= b;
    17. }
    18. for (int j = cnt - 1; j >= 0; j--){
    19. cout << arr[j];
    20. }
    21. return 0;
    22. }

  • 相关阅读:
    计及电池储能寿命损耗的微电网经济调度(matlab代码)
    面试题库(十三):场景和设计
    高薪程序员&面试题精讲系列133之微服务里的网关有哪些实现方案?你熟悉Gateway网关吗?
    机器学习笔记之线性分类——线性判别分析(一)模型构建思路
    [DB]数据库--lowdb
    数字IC设计面试题目集21~46
    DataX更新null值到ElasticSearch不生效的问题
    TextureView和SurfaceView
    Mac安装opencvJava踩坑
    如何生成一个足够安全又容易记住的密码?
  • 原文地址:https://blog.csdn.net/2301_80441657/article/details/136265179