C语言每日一练------(Day3)

news2024/11/19 17:48:20

本专栏为c语言练习专栏,适合刚刚学完c语言的初学者。本专栏每天会不定时更新,通过每天练习,进一步对c语言的重难点知识进行更深入的学习。

今天练习题的关键字: 尼科彻斯定理 等差数列

在这里插入图片描述

💓博主csdn个人主页:小小unicorn
⏩专栏分类:C语言天天练
🚚代码仓库:小小unicorn的代码仓库🚚
🌹🌹🌹关注我带你学习编程知识

Day1

  • 题目一:
    • 题目描述:
    • 解题思路:
      • 思路一:
      • 代码实现:
      • 思路二:
      • 思路三:
    • 代码实现:
    • 结果情况:
  • 题目二:
    • 题目描述:
    • 解题思路:
    • 代码实现:
    • 结果情况:
  • 总结:

题目一:

题目描述:

验证尼科彻斯定理…即:任何一个整数m的立方都可以写成m个连续奇数之和。 题目来源

例如:
1^3=1
2^3=3+5
3^3=7+9+11
4^3=13+15+17+19
输入一个正整数m(m≤100),将m的立方写成m个连续奇数之和的形式输出。
数据范围:
1≤m≤100
进阶:时间复杂度: O(m) ,空间复杂度:O(1)

输入描述:
输入一个int整数

输出描述:
输出分解后的string

在这里插入图片描述

解题思路:

思路一:

写几组例子:

1^3=1 —>1
2^3=3+5 ----> 4
3^3=7+9+11 —> 9
4^3=13+15+17+19 —> 16

我们会发现一个规律:
n x n x n=n x n两边的n个奇数相加。

代码实现:

#include <stdio.h>

int main() 
{
    int n=0;
    scanf("%d",&n);
    int m1=n*(n-1);
    int m2=n*(n+1);
    for(int i=m1+1;i<m2-1;i+=2)
    {
        printf("%d+",i);
    }
    printf("%d",m2-1);

    return 0;
}

思路二:

m的立方,也就是m个m^2 的和相加,m个m^2 可以理解为m个等差为2,首项为m^2-m+1的数列, 即:m2-m+1,m2-m+3, …m2+m-1 共m项

eg: m=6
m1=6x6-6+1 =31
m2=6x6-6+1 +2 =33
m3=6x6-6+1+2+2 =35
m4=6x6-6+1+2+2+2 =37
m5=6x6-6+1+2+2+2+2 =39
m6=6x6-6+1+2+2+2+2+2 = 41
6x6x6=36x6=(36+36+36+36+36+36)=(36-1)+(36+1)+(36-3)+(36+3)+(36-5)+(36+5)

#include <stdio.h>
#include <string.h>
int main(void)
{
    int m;
    scanf("%d",&m);
    int *arr;
    arr=(int*)malloc(sizeof(int)*m);//分配m个int字节空间
    
    for(int i=0;i<m;i++)
    {
        if(i==0)
            arr[i]=m*m-m+1;// 数列首项a[0]
        else
            arr[i]=arr[i-1]+2;//通项:a[n]=a[n-1]+2
    }
    for(int i=0;i<2*m-1;i++)
    {
        if(i%2==0)
            printf("%d",arr[i/2]);//偶数项打印数列
        else
            printf("%c",'+');//奇数项打印“+”号,但是最后项不能打印‘+’号,所以i<2*m-1,而不是i<2*m
    }
    return 0;
}

思路三:

认真对题目分析,可以将题目转换为:
已知等差数列前n项和,求a0问题。

等差数列求和公式为:Sn=nxa0+1/2n(n-1)d.
本题的公差为2也就是d为2.

由此可输出前n项和。

代码实现:

#include<stdio.h>

int main()
{
   int m;
   scanf("%d",&m);
   int sn=m*m*m;

   int a0=sn/m-m+1;
   printf("%d",a0);
   for(int i=1;i<m;i++)
   {
    printf("+%d",a0+2*i);
   }
    printf("\n");
    return 0;
}

结果情况:

在这里插入图片描述
符合题目要求,问题得到解决。

题目二:

题目描述:

等差数列 2,5,8,11,14。。。。(从 2 开始的 3 为公差的等差数列)
输出求等差数列前n项和
数据范围: 1≤n≤1000
题目来源

输入描述:
输入一个正整数n。

输出描述:
输出一个相加后的整数。

解题思路:

有了第一题的经验。第二题更简单,直接带等差数列求和公式即可。

代码实现:

#include<stdio.h>
int main() 
{
    int a1 = 2, d = 3, an = 0, n = 0, Sn = 0;
    while (scanf("%d", &n) == 1) 
    {
        an = a1 + (n - 1) * d;
        Sn = (a1 + an) * n / 2;
        printf("%d", Sn);
    }
}

结果情况:

在这里插入图片描述
符合题目要求,问题得到解决。

总结:

今天的两道编程练习题,会发现有一个共同点,那就是都用到了等差数列的相关知识,所以解决有的问题卡主了,我们可以尝试将它转化为一个数学问题,用数学知识解决它。

文章到这里就要告一段落了,有更好的想法或问题,欢迎评论区留言。
希望今天的练习能对您有所收获,咱们下期见!

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

麒麟信安受邀参展第八届成都智博会,自主创新系列成果备受关注!

图片来源&#xff1a;人民网 日前&#xff0c;由四川省贸促会和四川省科学技术协会主办&#xff0c;中国国际商会与四川省互联网信息办公室、四川省密码管理局等18个省市相关部门支持的第八届中国&#xff08;成都&#xff09;智慧产业国际博览会&#xff08;以下简称“第八届成…

深度|沃尔玛眼中只有盒马,但盒马Fudi眼中却没有山姆

外资会员制超市是懂中国消费者的&#xff0c;尤其是懂4亿中国中产。 前有Costco&#xff08;开市客&#xff09;中国大陆首店上海开业当天&#xff0c;曾投放5吨10000瓶飞天茅台&#xff0c;还有Burberry、爱马仕等奢侈品直接被消费者瞬间秒空&#xff0c;最后由于慕名而来的人…

如何实现个人微信的自动回复?

自动回复这块&#xff0c;我知道的实现方法和形式有以下几种&#xff1a; 1.自动通过好友&#xff1a;针对有新的好友申请的时候&#xff0c;会自动通过好友&#xff0c;以免错过客户。 2.通过好友自动回复&#xff1a;针对被动通过好友后&#xff0c;自动给通过的微信好友发送…

ospf不规则区域划分和数据库表

华子目录 ospf不规则区域1.远离骨干的非骨干区域2.不连续骨干 不规则区域解决方案1.tunnel-点到点GRE2.ospf虚链路3.多进程双向重发布&#xff08;推荐&#xff09; ospf的数据库表 ospf不规则区域 1.远离骨干的非骨干区域 图示 2.不连续骨干 图示 不规则区域解决方案 …

Geodetector 应用excel显示宏损坏的解决办法

打开地理探测器 如果显示宏损坏&#xff0c;每次excel会自动删除文件中的宏文件&#xff0c;导致地理探测器不能运行&#xff0c;这样的解决办法主要是&#xff1a;修改电脑本身格式与excel宏文件运行格式一致&#xff1a; 区域格式改为中文&#xff0c;这样就可以运行了。

如何选择科研可视化的图表?(超全!总结10多个可视化代码资源)

Highlights 一张漂亮的配图能让论文增色不少&#xff0c;但现在的图表类型越来越丰富&#xff0c;学者们很难选择合适的绘图类型进行可视化。 随着大数据和云计算的发展&#xff0c;我们很容易就能获取大量的数据&#xff0c;但是将这些数据美观地展示出来不是一件容易的事情。…

Javaweb基础学习(4)

Javaweb基础学习&#xff08;4&#xff09; 一、JSP学习1.1 JSP的简介概述1.2 JSP快速入门1.3 JSP原理1.4 JSP脚本1.5 JSP缺点1.6 EL表达式1.7 JSL标签1.7.1 JSL快速入门 1.8 MVC 模式和三层架构1.9 三层架构 三、会话跟踪技术3.1 会话跟踪技术介绍3.2 Cookie的基本使用3.3、Co…

分布式集群框架——有关zookeeper的面试考点

3.掌握Zookeeper的概念 当涉及到大规模分布式系统的协调和管理时&#xff0c;Zookeeper是一个非常重要的工具。 1. 分布式协调服务&#xff1a;Zookeeper是一个分布式协调服务&#xff0c;它提供了一个高可用和高性能的环境&#xff0c;用于协调和同步分布式系统中的各个节点…

输入设备应用编程

目录 输入类设备编程介绍什么是输入设备input 子系统读取数据的流程应用程序如何解析数据 读取struct input_event 数据在开发板上验证按键应用编程触摸屏应用编程解析触摸屏设备上报的数据获取触摸屏的信息单点触摸应用程序多点触摸应用程序 鼠标应用编程 本章学习输入设备的应…

私域流量的本质是什么?

私域流量的本质可以总结为以下几点&#xff1a; ①用户拥有权: 私域流量的关键是企业拥有对用户数据和互动的掌控权 ②长期价值: 建立持久的、互惠的关系&#xff0c;以便长期吸引、留住客户&#xff0c;并不断提高他们的价值。这与公域流量通常更侧重于短期转化的特性不同。…

华为加速回归Mate 60发布, 7nm全自研工艺芯片

华为于今天12:08推出“HUAWEI Mate 60 Pro先锋计划”&#xff0c;让部分消费者提前体验。在华为商城看到&#xff0c;华为Mate 60 pro手机已上架&#xff0c;售价6999元&#xff0c;提供雅川青、白沙银、南糯紫、雅丹黑四种配色供选择。 据介绍&#xff0c;华为在卫星通信领域…

玉米叶病害识别(图像连续识别和视频识别,python代码,pytorch框架)

代码运行要求&#xff1a;Torch>1.13.1即可 效果视频玉米叶病害识别&#xff08;图像连续识别和视频识别,python代码&#xff0c;pytorch框架&#xff09;_哔哩哔哩_bilibili 1.数据集介绍&#xff1a; Blight(枯萎病),1145张照片 Common_Rust&#xff08;褐锈病&#xff0…

C语言二——sqrt函数

sqrt 是C语言中的一个数学函数&#xff0c;用于计算平方根。它的函数原型如下&#xff1a; double sqrt(double x); sqrt 函数接受一个浮点数参数 x&#xff0c;并返回 x 的平方根&#xff0c;结果也为浮点数类型。 这段代码计算了一个数字的平方根并输出结果。具体而言&#…

Android.mk开发模板

今天简单写了一个 Android.mk 的示例模板&#xff0c;供初学者参考。 本模板主要给大家示例 Android NDK 开发中的如下几个问题&#xff1a; 如何自动添加需要编译的源文件列表如何添加第三方静态库、动态库的依赖如何构造一个完整的NDK工程框架 假设我们的项目依赖 libmath.…

元宇宙头像NFT生成免费教程,打造专属数字身份!

随着元宇宙的蓬勃发展&#xff0c;独特的像素风元宇宙 NFT 头像深受广大玩家和收藏者的喜爱。这些头像各具特色&#xff0c;是展示个性的绝佳方式。如果你也想拥有这样酷炫的头像&#xff0c;但苦于没有设计功底&#xff0c;那么可以试试在线设计工具即时设计。今天我们就来看看…

基于龙格-库塔算法优化的BP神经网络(预测应用) - 附代码

基于龙格-库塔算法优化的BP神经网络&#xff08;预测应用&#xff09; - 附代码 文章目录 基于龙格-库塔算法优化的BP神经网络&#xff08;预测应用&#xff09; - 附代码1.数据介绍2.龙格-库塔优化BP神经网络2.1 BP神经网络参数设置2.2 龙格-库塔算法应用 4.测试结果&#xff…

pandas计算连续行为天数的几种思路

我需要统计数据中缺失字段的日期跨度&#xff0c;并统计缺失数据条数。可以用pandas分组聚合计数。 import pandas as pddata pd.read_excel("缺失字段.xlsx") t data.loc[data["当日最高温"].isnull(), "dates"] groupids pd.to_datetime(…

阿里云 MSE 助力开迈斯实现业务高增长背后带来的服务挑战

开迈斯新能源科技有限公司于 2019 年 5 月 16 日成立&#xff0c;目前合资股东分别为大众汽车&#xff08;中国&#xff09;投资有限公司、中国第一汽车股份有限公司、一汽-大众汽车有限公司[增资扩股将在取得适当监督&#xff08;包括反垄断&#xff09;审批后完成]、万帮数字…

matlab使用教程(27)—微分代数方程(DAE)求解

1.什么是微分代数方程&#xff1f; 微分代数方程是一类微分方程&#xff0c;其中一个或多个因变量导数未出现在方程中。方程中出现的未包含其导数的变量称为代数变量&#xff0c;代数变量的存在意味着您不能将这些方程记为显式形式 y ′ f t , y 。相反&#xff0c;您可以…

详细讲解移植u-boot.2022.10版本移植到开发板基本方法

大家好&#xff0c;我是ST​。​ 今天给大家讲一讲如何将u-boot.2022.10版本移植到imx6ull开发板上。 环境 选项内容编译主机UbuntuLTS 18.04目标板ATK I.MX6ULL&#xff08;512MB DDR3 8GB EMMC&#xff09;u-boot版本2022.10交叉编译工具链gcc-linaro-7.5.0-2019.12-i686…