假期刷题打卡--Day24

1、MT1198阶乘差

求1!-2!-3!-…-n!

格式

输入格式:

输入为整型

输出格式:

输出为整型

样例 1

输入:

5

输出:

-151
分析过程

        看到这个题目的时候,感觉这个题目出现的没有必要,就和前面阶乘和一样的,但是在自己写了之后才发现了两者的区别,当计算阶乘和的时候,sum=0可以直接计算,但是如果是结成差,就需要注意,若sum初值为0,那么0-1就直接是个负数,最终结果就是错误的。所以sum的初值应该从1的阶乘1开始,而循环初值也应该从2开始。

        按照上述思路,我第一次写的代码如下:

#include<bits/stdc++.h> 

using namespace std;

int s(int a){
    int sum1 = 1;
    for(int i=1;i<=a;i++){
        sum1 *= i;
    }
    // cout << sum1 << "##";
    return sum1;
}
int main( )
{
    int n,sum=1;
    cin >> n;
    for(int i=2;i<=5;i++){
        sum -= s(i);
    }
    cout << sum;
    return 0;
}

但是,这个代码却一个用例都不能通过,原因如下:我出现了一个最不应该出的错误:在计算sum的时候,循环条件写成了样例的输入值; 

所以,将5改成n就可以了。 

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

using namespace std;

int s(int a){
    int sum1 = 1;
    for(int i=1;i<=a;i++){
        sum1 *= i;
    }
    // cout << sum1 << "##";
    return sum1;
}
int main( )
{
    int n,sum=1;
    cin >> n;
    for(int i=2;i<=n;i++){
        sum -= s(i);
    }
    cout << sum;
    return 0;
}

这个确实不该错的。

2、MT1199公式计算

输入正整数n和r,计算公式 (n!) / (n-r)!。

格式

输入格式:

输入整型,空格分隔。

输出格式:

输出实型,保留2位小数。

样例 1

输入:

2 1

输出:

2.00
分析过程

还是和前面一样的分析思路,首先用一个函数计算阶乘,然后在主函数中调用,但是发现只能通过一个用例

#include<bits/stdc++.h> 

using namespace std;

int s(int a){
    int sum1 = 1;
    for(int i=1;i<=a;i++){
        sum1 *= i;
    }
    return sum1;
}
int main( )
{
    int n,r;
    double c;
    cin >> n >> r;
    c = s(n)/s((n-r));
    printf("%.2f",c);
    return 0;
}

所以,开始寻找错误: 

没找到,所以就去评论区看了一下别人的思路,发现,他们都是站在阶乘计算的位置上思考问题,而我是站在出发的位置上思考,看了之后,就直接修改了代码:

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

using namespace std;

int main( )
{
    int n,r;
    double res=1;
    cin >> n >> r;
    for(int i=n-r+1;i<=n;i++) res*=i;
    printf("%.2lf",res);
    return 0;
}

3、MT1201强数

强数是各位数字的阶乘和等于原始数的数,输入一个数字N,检查它是否为强数。是则输出YES,否则输出NO。比如145,1!+4!+5!=145

格式

输入格式:

输入为整型

输出格式:

输出为YES或者NO

样例 1

输入:

145

输出:

YES
分析过程

初次分析本题目,第一想法就是首先设置一个count,记录输入数的位数,然后在循环中使用求余与除法结合的方式计算总数,最后使用if语句判断sum与输入数是否相等,如果相等,那么就输出YES,否则,输出NO。

按照以上思路,写出代码:

#include<bits/stdc++.h> 

using namespace std;

int s(int a){
    int sum1 = 1;
    for(int i=1;i<=a;i++){
        sum1 *= i;
    }
    return sum1;
}
int main( )
{
    int n,count=0,sum=0;
    cin >> n;
    int b = n,m = n;
    while(b!=0){ 
        count++;
        b = b/10;
    }
    // cout << count;
    for(int i=1;i<=3;i++){
        int c = n%10;
        sum += s(c);
        n /= 10;
    }
    if(sum == m){
        cout << "YES";
    }else{
        cout << "NO";
    }
    return 0;
}

但是,有一个样例过不去,为什么啊啊啊啊啊啊啊?

所以,开始找错:

有时候,真的对自己挺无语的,一个错误一晚上竟然出现了两次。。没错,就是循环条件那里,没有设置成变量……

修改之后,代码如下: 

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

using namespace std;

int s(int a){
    int sum1 = 1;
    for(int i=1;i<=a;i++){
        sum1 *= i;
    }
    return sum1;
}
int main( )
{
    int n,count=0,sum=0;
    cin >> n;
    int b = n,m = n;
    while(b!=0){ 
        count++;
        b = b/10;
    }
    // cout << count;
    for(int i=1;i<=n;i++){
        int c = n%10;
        sum += s(c);
        n /= 10;
    }
    if(sum == m){
        cout << "YES";
    }else{
        cout << "NO";
    }
    return 0;
}

 

4、MT1203字母矩阵

请编写一个简单程序,输入正整数n,输出n*n的F字矩阵

格式

输入格式:

输入整型

输出格式:

输出n*n的F字矩阵,空格分隔

样例 1

输入:

5

输出:

F F F F F  
F F F F F  
F F F F F  
F F F F F  
F F F F F  
分析过程

我的想法是,循环条件直接输出n*n,然后在能整除n的数上,输出一个换行符。(即使用一个for循环实现)

我实现之后,尝试使用双重循环解决此问题(虽然以前没好好听课,但是还是见过使用双重循环输出矩阵的例子,嘿嘿~)

实现代码

法一:一个for循环实现:

#include<bits/stdc++.h> 

using namespace std;

int main( )
{
    int n,count=0;
    cin >> n;
    for(int i=0;i<n*n;i++){
        cout << "F" << " ";
        count++;
        if(count % n == 0 ){
            cout << endl;
        } 
    }
    return 0;
}

法二:使用双重for循环实现

#include<bits/stdc++.h> 

using namespace std;

int main( )
{
    int n,count=0;
    cin >> n;
    for(int i=0;i<n;i++){
        for(int j=0;j<n;j++){
            cout << "F" << " ";
        }cout << "\n";
    }
    return 0;
}

此题中使用双重for循环也挺简单的,不需要分析内层循环的条件,直接输出即可。

 

明天继续吧。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

MySQL数据库练习【一】

MySQL数据库练习【一】 一、建库建表-数据准备二、习题2.1. 查询部门编号为30的部门的员工详细信息2.2.查询从事clerk工作的员工的编号、姓名以及其部门号2.3.查询奖金多于基本工资的员工的信息、查询奖金小于基本工资的员工的信息2.4.查询奖金多于基本工资60%的员工的信息2.5.…

transformers重要组件(模型与分词器)

1、模型&#xff1a; from transformers import AutoModelcheckpoint "distilbert-base-uncased-finetuned-sst-2-english" model AutoModel.from_pretrained(checkpoint) 除了像之前使用 AutoModel 根据 checkpoint 自动加载模型以外&#xff0c;我们也可以直接…

算法学习——LeetCode力扣哈希表篇2

算法学习——LeetCode力扣哈希表篇2 454. 四数相加 II 454. 四数相加 II - 力扣&#xff08;LeetCode&#xff09; 描述 给你四个整数数组 nums1、nums2、nums3 和 nums4 &#xff0c;数组长度都是 n &#xff0c;请你计算有多少个元组 (i, j, k, l) 能满足&#xff1a; 0 …

细说开源软件的影响力分析

开源软件的影响力分析 一、开源软件如何推动技术创新 开源软件以其开放源代码的特性&#xff0c;极大地推动了全球软件技术的创新和发展。这种开放性不仅使得开发者能够自由地查看、修改和使用源代码&#xff0c;还促进了全球开发者之间的深度协作和交流。 1.1 促进全球协作&…

【数据分享】1929-2023年全球站点的逐月平均能见度(Shp\Excel\免费获取)

气象数据是在各项研究中都经常使用的数据&#xff0c;气象指标包括气温、风速、降水、能见度等指标&#xff0c;说到气象数据&#xff0c;最详细的气象数据是具体到气象监测站点的数据&#xff01; 之前我们分享过1929-2023年全球气象站点的逐月平均气温数据、逐月最高气温数据…

二叉树(4)——二叉树链式结构的实现和递归思想(2)

有了昨天的铺垫&#xff0c;今天就很简单了。先把昨天二叉树的代码复制一下&#xff0c;今天还要用。 代码&#xff1a; typedef int datatype; typedef struct BinaryTree {datatype _data;struct BinaryTree* _left;struct BinaryTree* _right; }BT;BT* CreatNode(datatype…

分享63个节日PPT,总有一款适合您

分享63个节日PPT&#xff0c;总有一款适合您 63个节日PPT下载链接&#xff1a;https://pan.baidu.com/s/1kZeiN06KbevtSCs5vXm6oA?pwd6666 提取码&#xff1a;6666 Python采集代码下载链接&#xff1a;采集代码.zip - 蓝奏云 学习知识费力气&#xff0c;收集整理更不易…

宝塔+php+ssh+vscode+虚拟机 远程调试

远程(虚拟机)宝塔 安装扩展 配置文件添加&#xff0c;zend_extension看你虚拟机的具体位置 [Xdebug] zend_extension/www/server/php/74/lib/php/extensions/no-debug-non-zts-20190902/xdebug.so xdebug.modedebug xdebug.start_with_requesttrigger xdebug.client_host&quo…

windows+vscode配置远程Linux开发环境

1.Linux运行sshd服务 安装openssh-server sudo apt install openssh-server 开启服务 sudo service ssh start 检查sshd是否开启 sudo ps -aux | grep sshd 2.vscode上安装RemoteDevelopment插件 其他依赖性会自动安装 3.配置远程Linux主机信息 Linux主机ip 4.在vscode…

用 Delphi 程序调用 Python 代码画曲线图

用 Python 的库画图 Python 代码如下&#xff1a; import matplotlib.pyplot as pltsquares [1, 4, 9, 16, 25]; plt.plot(squares); plt.grid(True) # 网格线 plt.show(); # 这句话会弹出个窗口出来&#xff0c;里面是上述数据的曲线。 把以上代码&#xff0c;放进 PyS…

5分钟掌握接口自动化测试,4个知识点简单易学!

一. 什么是接口测试 接口测试是一种软件测试方法&#xff0c;用于验证不同软件组件之间的通信接口是否按预期工作。在接口测试中&#xff0c;测试人员会发送请求并检查接收到的响应&#xff0c;以确保接口在不同场景下都能正常工作。 就工具而言&#xff0c;常见的测试工具有…

DBNet详解及训练ICDAR2015数据集

论文地址&#xff1a;https://arxiv.org/pdf/1911.08947.pdf 开源代码pytorch版本&#xff1a;GitHub - WenmuZhou/DBNet.pytorch: A pytorch re-implementation of Real-time Scene Text Detection with Differentiable Binarization 前言 在这篇论文之前&#xff0c;文字检…

07.你还在手动部署代码吗

如今的项目或者个人项目中,大家的代码怎么部署呢?公司一般都有完整的持续集成以及持续交付平台,对于小公司可能也有各自搭建了一些,比如jenkins,以及gitlab集成的gitlab-ci等等,这些都可以完成我们部署的工作甚至是测试集成等等一系列流水化工作。 但是,即使如此,我依…

R语言学习case12:ggplot 置信区间(多线型)

接上文&#xff1a;多条曲线 R语言学习case11&#xff1a;ggplot 置信区间&#xff08;包含多子图&#xff09; 在ggplot2中&#xff0c;每个geom函数都接受一个映射参数。然而&#xff0c;并非每个美学属性都适用于每个geom。你可以设置点的形状&#xff0c;但不能设置线的“…

从雪花到分形几何

目录 前言雪花曲线分形几何雪花曲线工程化参考文献前言 新一股寒潮来袭,河南,安徽,重庆,湖北,湖南北部等地都飘起了大雪,一夜的功夫,世界银装素裹,雪白雪白的,好不美丽迷人。 雪花曲线 物理学上,雪花是一种晶体,是天空中的水汽经凝华而来的固态降水,结构随温度…

Go语言深度解析:探索 crypto/md5 标准库的强大功能

Go语言深度解析&#xff1a;探索 crypto/md5 标准库的强大功能 引言Go语言和MD5的基础知识MD5算法简介Go语言概述Go中的MD5实现 crypto/md5 库的使用方法基本用法处理大型数据安全注意事项 实际案例分析示例1&#xff1a;文件的MD5校验示例2&#xff1a;网络数据的MD5哈希示例3…

BZOJ0481. 树的重心之砍树Link Cut Centroids

题目 思路 分类讨论。 首先当树只有一个重心的时候,我们删掉最小的边再加上原边即可. 再看有两个重心的情况. 显然这棵树必定是类似这样的: 即删掉 A 后,以B 为根的子树是剩下的最大连通块,反之亦然. 那就可以得到一个结论: 删掉边 (A,B) 后,两棵树的大小相等. 那我们只…

【机器学习】某闯关类手游用户流失预测

Final Project: 某闯关类手游用户流失预测 1 案例简介 手游在当下的日常娱乐中占据着主导性地位&#xff0c;成为人们生活中放松身心的一种有效途径。近年来&#xff0c;各种类型的手游&#xff0c;尤其是闯关类的休闲手游&#xff0c;由于其对碎片化时间的利用取得了非常广泛…

HomeAssistant系统添加HACS插件商店与远程控制家中智能家居

文章目录 基本条件一、下载HACS源码二、添加HACS集成三、绑定米家设备 ​ 上文介绍了如何实现群晖Docker部署HomeAssistant&#xff0c;通过内网穿透在户外控制家庭中枢。本文将介绍如何安装HACS插件商店&#xff0c;将米家&#xff0c;果家设备接入 Home Assistant。 基本条件…

国图公考:公务员面试资格复审需要准备什么?

参加国考面试的考生在资格审核阶段需要准备以下材料&#xff1a; 1、本人身份证、学生证或工作证复印件。 2、公共科目笔试准考证复印件。 3、考试报名登记表。 4、本(专)科、研究生各阶段学历、学位证书(应届毕业生没有可以暂时不提供)。 5、报名资料上填写的各类证书材料…
最新文章