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

假期刷题打卡--Day26

1、MT1212乘法表

请编写一个简单程序,输出九九乘法表。输入n,就输出乘法表到n的地方。

格式

输入格式:

输入整型

输出格式:

输出整型。形式如:1*1=1

样例 1

输入:

5

输出:

1*1=1  
2*1=2  2*2=4
3*1=3  3*2=6  3*3=9
4*1=4  4*2=8  4*3=12 4*4=16
5*1=5  5*2=10 5*3=15 5*4=20 5*5=25  
备注

乘式之间一个空格。乘法结果占两格,不足两位的左对齐。

分析过程

本题实现的是我们从小背的九九乘法表的表示,使用的是双重循环。唯一需要注意的是,本题中对于空格的要求是不同的,要注意备注中所说的,不然就算代码是能够输出乘法表的,也无法通过所有用例。

所以,就要按照备注将空格进行修改。

按照备注可得,不足两位的占2个空格,除此之外,乘法之间占用1个空格。

实现代码
#include<bits/stdc++.h> 

using namespace std;

int main( )
{
    int n;
    scanf("%d",&n);
    for(int i=1;i<=n;i++){
        for(int j=1;j<=i;j++){
            if(i*j>=10){
                printf("%d*%d=%d ",i,j,i*j);
            }else{
                printf("%d*%d=%d  ",i,j,i*j);
            }
            
        }printf("\n");
    }
    return 0;
}

2、MT1213  x个a

求a+aa+aaa+…+a…a(x个a),x和a由键盘输入。

格式

输入格式:

输入为整型,空格分隔

输出格式:

输出为整型

样例 1

输入:

3 1

输出:

123
分析过程

本来想的是,使用一个循环,循环结束条件为x,然后在这个循环中,改变a的值,求出sum。按照这个代码实现的代码如下:

#include<bits/stdc++.h> 

using namespace std;

int main( )
{
    int x,a,sum;
    cin >> x >> a;
    sum = a;
    for(int i=1;i<x;i++){
        // cout << a << "&" << sum << "^";
        a = a + pow(10,i);
        // cout << a <<"*";
        sum += a;
    }
    cout << sum;
    return 0;
}

但是,这个代码无法通过所有的用例,只能通过一个用例

所以,继续分析遗漏点。

是因为,在测试用例的时候,a为1,所以恰巧可以通过,而如果a不为1,按照我上面写的代码,最高位始终为1,所以结果是错误的。要修改为正确答案,就需要在最高位乘以a,实现代码如下:

实现代码
#include<bits/stdc++.h> 

using namespace std;

int main( )
{
    int x,a,sum,b;
    cin >> x >> a;
    sum = a,b=a;
    for(int i=1;i<x;i++){
        // cout << a << "&" << sum << "^";
        a = a + b*pow(10,i);
//        cout << a <<"*";
        sum += a;
    }
    cout << sum;
    return 0;
}

需要注意的是,a是随着i的增加而改变的,所以不能直接在高位乘以a,而是要在最初的时候,就把a保存在一个变量当中,在最高位乘以这个数即可。

3、MT1214上三角矩阵

输入3X3的整型矩阵A,输出对应的上三角矩阵。

格式

输入格式:

输入矩阵,元素在0到9之间,空格分隔。

输出格式:

输出矩阵,空格分隔。

样例 1

输入:

1 2 3 4 5 6 7 8 9

输出:

1 2 3  
0 5 6  
0 0 9
解决思路

法一:因为本题要求的矩阵是3*3的矩阵,是固定的,所以可以直接使用一维数组,找出上三角矩阵包含的几位,除了这几位,其余的都直接设置位0即可。

法二:使用二维数组,设置为a[i][j],当i>j时,输入0。然后输出矩阵即可。

实现代码

法一:一维矩阵解决

#include<bits/stdc++.h> 

using namespace std;

int main( )
{
    int a[9]={0},count=0;
    for(int i=0;i<9;i++){//这里需要注意,数组位数为9位,所以应该是从0~8
        cin >> a[i];
        if(i==3||i==6||i==7){
            a[i]=0;
        }
    }
    
    for(int i=0;i<9;i++){
        // cout << a[i];
        count++;
        cout << a[i] << " ";
        if(count%3==0){
            cout << endl;
        }
    }
    return 0;
}

法二:二维矩阵解决

#include<bits/stdc++.h> 

using namespace std;

int main( )
{
    int a[3][3]={0};
    for(int i=0;i<3;i++){
        for(int j=0;j<3;j++){
            cin >> a[i][j];
            if(i>j) a[i][j]=0;
        }
    }
    for(int i=0;i<3;i++){
        for(int j=0;j<3;j++){
            cout << a[i][j] << " ";
        }cout << endl;
    }
    return 0;
}

明天继续吧。


http://www.kler.cn/news/235033.html

相关文章:

  • 品牌如何营造生活感氛围?媒介盒子分享
  • 2024-02-11 Unity 编辑器开发之编辑器拓展2 —— 自定义窗口
  • 【JavaEE Spring 项目】博客系统
  • django密码管理器(创建项目)
  • 使用C++从零开始,自己写一个MiniWeb
  • Python在金融大数据分析中的AI应用实战
  • JavaScript学习之旅10------掌握jQuery:实用应用案例深度解析
  • 【深度学习 目标检测】R-CNN系列算法全面概述(一文搞懂R-CNN、Fast R-CNN、Faster R-CNN的来龙去脉)
  • tab 切换类交互功能实现
  • C语言每日一题(55)另一颗树的子树
  • 《UE5_C++多人TPS完整教程》学习笔记5 ——《P6 在线子系统(Online Subsystem)》
  • [算法学习] 唯一分解定理
  • 批量提取word文件中文本框内容的三种方法
  • Go基础学习笔记-知识点
  • 速盾:怎么拿高防服务器做CDN
  • springBoot,springSecurity返回乱码
  • Linux系统调试课:Linux错误码介绍
  • system V——进程间通信
  • 大模型学习 一
  • 软件架构与系统架构:区别与联系的分析
  • 跟踪分析一款新型Megahorse窃密木马
  • RabbitMQ之五种消息模型
  • 一、基础数据结构——2.队列——3.双端队列和单调队列2
  • 学习Android的第十天
  • JVM的主要组成部分,以及它们的作用。JVM中的内存区域有哪些,它们各自的作用是什么?什么是Java的堆内存,它如何影响程序的性能?
  • 鸿蒙harmony--TypeScript对象详解
  • Android录音功能的实现及踩坑记录
  • BIO、NIO、Netty演化总结
  • JavaScript DOM 变动观察器(Mutation observer)
  • DataBinding源码浅析---初始化过程