算法日志

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 算法日志

@TOC

一、打印从1到最大的n位数

1.题目描述

输入数字 n,按顺序打印出从 1 到最大的 n 位十进制数。比如输入 3,则打印出 1、2、3 一直到最大的 3 位数 999。

  1. 用返回一个整数列表来代替打印
  2. n 为正整数,0 < n <= 5

题目地址:JZ17 打印从1到最大的n位数
在这里插入图片描述

2.代码实现

 @param n int整型 最大位数
 @return int整型一维数组
 @return int* returnSize 返回数组行数
 static int arr[100000];//全局变量加static,防止重复定义
int* printNumbers(int n, int* returnSize ) {   
    int max=0;
    while(n)
    {
        max=max*10+9;
        n--;
    }
    *returnSize=max;
    for(int i=1;i<=max;i++)
    {
        arr[i-1]=i;
    }
    return arr;
}

二、计算日期到天数转换

1.题目描述

根据输入的日期,计算是这一年的第几天。
保证年份为4位数且日期合法。
输入描述:
输入一行,每行空格分割,分别是年,月,日
输出描述:
输出是这一年的第几天

题目地址:HJ73 计算日期到天数转换
在这里插入图片描述
在这里插入图片描述

2.解题思路

在进行转换时,应该先判断下是否为闰年,因为闰年和其他年份2月的天数不一样,这是容易出错的点,其他暴力计算就行。

3.代码实现

#include<stdio.h>
int main()
{
    int y,m,d;
    scanf("%d %d %d",&y,&m,&d);
    int flag=0;//判断是否为闰年的标志
    if(y%400==0||(y%4==0&&y%100!=0))//判断
    {
        flag=1;
    }
    int arr[12]={31,28,31,30,31,30,31,31,30,31,30,31};
    if(flag==1)
    {
        arr[1]=29;
      
    }
       int i=0;
    int sum=0;
    for(i=0;i<m-1;i++)
    {
        sum+=arr[i];
    }
    sum+=d;
    printf("%d",sum);
    return 0;
}

三、尼科彻斯定理

1.题目描述

验证尼科彻斯定理,即:任何一个整数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

题目地址:HJ76 尼科彻斯定理
在这里插入图片描述

2.解题思路

解题的关键是要确定m个连续的数的第一位,只要第一位确定了,剩下的顺利推就可,暴力求解也能解出来,但不满足时间复杂度和空间复杂度的要求,这里涉及到一点基础数学:任何一个整数n的立方写成n个连续奇数之和的第一项为:n*n-(n-1)

3.代码实现

#include<stdio.h>
int main()
{
    int n=0;
    scanf("%d",&n);
    int i=1;
    int j=0;
    for(i=n*n-(n-1);;i+=2)
    {        
        j++;
        printf("%d",i);       
          if(j==n)
            break;
            printf("+");
    }
   return 0;
}

四、等差数列

1.题目描述

等差数列 2,5,8,11,14。。。。
(从 2 开始的 3 为公差的等差数列)
输出求等差数列前n项和
数据范围: 1≤n≤1000
输入描述:
输入一个正整数n。
输出描述:
输出一个相加后的整数。

题目地址:HJ100 等差数列
在这里插入图片描述
在这里插入图片描述

2.解题思路

在这里我们提供两种思路,第一种穷举出等差数列的每一项然后累加,第二种使用等差数列求和公式直接求和。

3.方法1

#include<stdio.h>
int main()
{
    int n=0;
    while(~scanf("%d",&n))
    {
         int sum=0;
        int s=2;
        while(n--)
        {
             sum+=s;
            s+=3;
        }
        printf("%d\n",sum);
    }
    return 0;
}

4.方法2

#include<stdio.h>
int main()
{
    int n=0;
    while(~scanf("%d",&n))
    {
         int sum=0;
         sum=n*2+n*(n-1)*3/2;
        printf("%d\n",sum);
    }
    return 0;
}
相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
5月前
|
算法 关系型数据库 程序员
第一周算法设计与分析:A : log2(N)
这篇文章介绍了解决算法问题"输入一个数N,输出log2N(向下取整)"的三种编程思路,包括使用对数函数和幂函数的转换方法,以及避免浮点数精度问题的整数逼近方法。
|
6月前
|
存储 算法 缓存
高并发架构设计三大利器:缓存、限流和降级问题之使用RateLimiter来限制操作的频率问题如何解决
高并发架构设计三大利器:缓存、限流和降级问题之使用RateLimiter来限制操作的频率问题如何解决
|
6月前
|
存储 算法 Java
高并发架构设计三大利器:缓存、限流和降级问题之滑动日志算法问题如何解决
高并发架构设计三大利器:缓存、限流和降级问题之滑动日志算法问题如何解决
|
算法 安全 Java
JVM学习日志(十) 垃圾回收算法
垃圾回收算法 简述
74 0
JVM学习日志(十) 垃圾回收算法
|
8月前
|
算法 测试技术 C++
【数据结构】模式匹配之KMP算法与Bug日志—C/C++实现
【数据结构】模式匹配之KMP算法与Bug日志—C/C++实现
84 0
|
算法 安全 机器人
Baumer工业相机堡盟工业相机如何联合BGAPISDK和Halcon实现图像的对数Log变换算法增强(C#)
Baumer工业相机堡盟工业相机如何联合BGAPISDK和Halcon实现图像的对数Log变换算法增强(C#)
128 0
Baumer工业相机堡盟工业相机如何联合BGAPISDK和Halcon实现图像的对数Log变换算法增强(C#)
|
运维 监控 算法
事件日志分析算法:提升上网行为管理软件的智能监控
随着互联网的快速发展,网络安全和上网行为管理变得越来越重要了。不少企业和组织为了维护网络的安全、稳定性,还有员工的工作效率,都开始使用上网行为管理软件。这些软件的作用就是监控、分析和控制员工的上网行为,帮助组织管理网络资源,以免潜在的网络威胁和数据泄漏。其中,事件日志分析算法发挥了关键作用,它们有各种各样的优点和用途,真的非常实用。接下来,就让我们来看看,事件日志分析算法在这方面有哪些厉害的地方以及怎么用吧!
211 0
|
算法 安全 机器人
Baumer工业相机堡盟工业相机如何联合BGAPISDK和OpenCVSharp实现图像的对数Log变换算法增强(C#)
Baumer工业相机堡盟工业相机如何联合BGAPISDK和OpenCVSharp实现图像的对数Log变换算法增强(C#)
100 0
|
2月前
|
XML 安全 Java
【日志框架整合】Slf4j、Log4j、Log4j2、Logback配置模板
本文介绍了Java日志框架的基本概念和使用方法,重点讨论了SLF4J、Log4j、Logback和Log4j2之间的关系及其性能对比。SLF4J作为一个日志抽象层,允许开发者使用统一的日志接口,而Log4j、Logback和Log4j2则是具体的日志实现框架。Log4j2在性能上优于Logback,推荐在新项目中使用。文章还详细说明了如何在Spring Boot项目中配置Log4j2和Logback,以及如何使用Lombok简化日志记录。最后,提供了一些日志配置的最佳实践,包括滚动日志、统一日志格式和提高日志性能的方法。
455 30
【日志框架整合】Slf4j、Log4j、Log4j2、Logback配置模板
|
24天前
|
监控 安全 Apache
什么是Apache日志?为什么Apache日志分析很重要?
Apache是全球广泛使用的Web服务器软件,支持超过30%的活跃网站。它通过接收和处理HTTP请求,与后端服务器通信,返回响应并记录日志,确保网页请求的快速准确处理。Apache日志分为访问日志和错误日志,对提升用户体验、保障安全及优化性能至关重要。EventLog Analyzer等工具可有效管理和分析这些日志,增强Web服务的安全性和可靠性。

热门文章

最新文章