C语言笔记 10

news2024/10/21 23:09:01

求前n项之和


程序设计

  • f(n)=1+\frac{1}{2}+\frac{1}{3}+\frac{1}{4}+…+\frac{1}{n}

起点终点数字已知,用for循环最合适

#include <stdio.h>

int main()
{
    int n;
    int i;
    double sum = 0.0;

    scanf("%d", &n);
    for ( i=1; i<=n; i++ ) {
        sum += 1.0/i;
    }

    pritnf("f(%d)=%f\n", n, sum);

    return 0;
}

int n;

int i;

double ret=0.0;

 

scanf("%d", &n);

for ( i=1; i<=n; i++ ) {

        ret += 1.0/i;

}

printf("%f\n", ret);

  • f(n)=1-\frac{1}{2}+\frac{1}{3}-\frac{1}{4}+…+\frac{1}{n}

法一 

#include <stdio.h>

int main()
{
    int n;
    int i;
    double sum = 0.0;
    int sign = 1;

    scanf("%d", &n);
    for( i=1; i<=n; i++ ); {
        sum += sign*1.0/i;
        sign = -sign;
    }
    printf("f(%d)=%f\n", n, sum);

    return 0;
}

法二

#include <stdio.h>

int main()
{
    int n;
    int i;
    double sum=0.0;
    double sign=1.0;

    scanf("%d", &n);
    for( i=1; i<=n; i++ ) {
        sum += sign/i;
        sign = -sign;
    }

    printf("f(%d)=%f\n", n, sum);

    return 0;
}

整数分解


正序分解整数

输入一个非负整数,正序输出他的每一位数字

eg.输入:13425;输出:1 3 4 2 5

step1.逆序输出

#include <stdio.h>

int main()
{
    int x;
    scanf("%d", &x);

    do {
        int d = x%10;
        printf("%d", d);
        x /= 10;
    } while ( x>0 );

    return 0;
}

此时,输出结果最末尾的1(以13425为例)后面也会有空格

改进:

#include <stdio.h>

int main()
{
    int x;
    scanf("%d", &x);

    do {
        int d = x%10;
        printf("%d", d);
        if( x > 9 ) {
            printf(" ");
        }
        x /= 10;
    } while ( x>0 );
    printf("\n");

    return 0;
}

现在1后就没有空格了 


step2.将逆序正过来

先逆序再逆序

#include <stdio.h>

int main()
{
    int x;
    scanf("%d", &x);

    do {
        int d = x%10;
        printf("%d", d);
        if ( x>9 ) {
            printf(" ");
        }
        x /= 10;
    } while ( x>0 );
    printf("\n");

    return 0;
}

但是,当输入值为70000时,输出结果是7而不是想要的00007,上述程序只适用于末尾不是0的数字

改进:

x =13425;

13425 / 10000  >>  1;

13425 % 10000  >>  3425;

10000 / 10  >>  1000;

3425 / 1000  >>  3;

3425 % 1000  >>  425;

1000 / 10  >>  100;

425 / 100  >>  4;

425 % 100  >>  25;

100 / 10  >>  10;

25 / 10  >>  2;

25 % 10  >>  5;

10 / 10  >>  1;

5 / 1  >>  5;

5 % 1  >>  5;

1 / 10  >>  0;

#include <stdio.h>

int main()
{
    int x;
    scanf("%d", &x);

    x=13425;
    int mask=10000;
    do {
        int d = x/mask;
        printf("%d", d);
        if( x>9 ) {
            printf(" ");
        }
        x %= mask;
        mask /= 10;
    } while ( x>0 );

    printf("\n");

    return 0;
}

输入70000,结果依旧是7

原因:

70000 / 10000  >>  7

70000 % 10000  >>  0

改进:

#include <stdio.h>

int main()
{
    int x;
    scanf("%d", &x);

    x=13425;
    int mask=10000;
    do {
        int d = x/mask;
        printf("%d", d);
        if( mask>9 ) {
            printf(" ");
        }
        x %= mask;
        mask /= 10;
    } while ( mask>0 );

    printf("\n");

    return 0;
}

step3.将mask改成可以自己变的值

法一:pow

#include <stdio.h>

int main()
{
    int x;
    scanf("%d", &x);

    int cnt=0;
    do {
        x /= 10;
        cnt++;
    } while (x>0);
    printf("cnt=%d/n", cnt);
    int mask = pow(10, cnt-1);
    do {
        int d=x/mask;
        printf("%d", d);
        if( mask>9 ){
            printf(" ");
        }
        x %= mask;
        mask /= 10;
    }while (mask>0);

    printf("\n");

    return 0;
}

法二:

#include <stdio.h>

int main()
{
    int x;
    scanf("%d", &x);

    int cnt=0;
    int mask=1;
    int t=x;
    while( t>9) {
        t /= 10;
        mask *= 10;
    } 
    printf("mask=%d/n", mask);
    int mask = pow(10, cnt-1);
    do {
        int d=x/mask;
        printf("%d", d);
        if( mask>9 ){
            printf(" ");
        }
        x %= mask;
        mask /= 10;
    }while (mask>0);

    printf("\n");

    return 0;
}

求最大公约数


枚举

  1. 设t为2
  2. 如果u和v都能被t整除,则记下这个t
  3. t加1后重复第2步,直到t等于u或v
  4. 曾经记下的最大的可以同时整除u和v的t就是gcd

int a,b;

int min;

 

scanf("%d %d", &a, &b);

if( a<b ) {

        min = a;

}else{

        min = b;

}

int ret = 0;

int i;

for ( i=1; i<min; i++ ){

        if( a%i == 0) {

                if( b%i == 0) {

                        ret = i;

                }

          }

}

printf("%d和%d的最大公约数是%d。\n", a, b, ret);

辗转相除

  1. 如果b等于0,计算结束,a就是最大公约数
  2. 否则,计算a除以b的余数,让a等于b,而b等于那个余数
  3. 回到第一步

 a               b                t

12             18              12

18             12               6

12              6                0

 6               0

最大公约数=a=6

#include <stdio.h>

int main()
{
    int a,b;
    int t;
    scanf("%d %d", &a, &b);

    while ( b != 0 ){
        t = a%b;
        a = b;
        b = t;
    }
    printf("gcd=%d\n", a);

    return 0;
}

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

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

相关文章

宿舍离人自动断电控制系统的功能要求是什么?

宿舍离人自动断电系统&#xff0c;由石家庄光大远通电气有限公司匠心打造&#xff0c;专为集体公寓、学生宿舍等密集型居住空间量身定制的智能用电管理解决方案&#xff0c;其卓越性能与广泛适应性&#xff0c;如同智慧之网&#xff0c;精准覆盖并优化每一份用电需求。该系统不…

八卦GPT-5的一切

这篇超长文章——既是评论&#xff0c;也是探索——关于GPT-5 对最受期待的下一代 AI 模型的深入分析 但它不仅仅是关于GPT-5。 • 它涉及我们对下一代AI模型的期望。 • 它关于即将出现的令人兴奋的新功能&#xff08;如推理和代理&#xff09;。它不仅讨论GPT-5技术本身&…

人工智能领域科学问题

科学问题 目前中国在人工智能领域亟待解决的问题包括但不限于以下几个方面&#xff1a; 数据隐私和安全&#xff1a;随着人工智能技术的发展&#xff0c;个人数据的收集和使用越来越广泛&#xff0c;如何保护个人隐私和数据安全成为一个重要问题。 伦理和道德问题&#xff1…

初试PostgreSQL数据库

文章目录 一、PostgreSQL数据库概述1.1 PostgreSQL的历史1.2 PostgreSQL安装1.3 安装PostgreSQL二、PostgreSQL起步2.1 连接数据库2.1.1 SQL Shell2.1.2 执行SQL语句2.2 pgAdmin 42.2.1 打开pgAdmin 42.2.2 查找数据库2.2.3 打开查询工具2.2.4 执行SQL语句三、实战小结文章目录…

LLM-生成器判别器的实现

总结 首先&#xff0c;使用GPT模型获取每个词的生成概率 pLLMp_{LLM}pLLM​。然后&#xff0c;使用训练好的生成判别器&#xff0c;对每个可能的生成结果进行打分&#xff0c;得到 pθ(c∣x1:t)p_\theta(c|x_{1:t})pθ​(c∣x1:t​)。最后&#xff0c;结合两者的输出&#xff…

JAVA就业笔记6——第二阶段(3)

课程须知 A类知识&#xff1a;工作和面试常用&#xff0c;代码必须要手敲&#xff0c;需要掌握。 B类知识&#xff1a;面试会问道&#xff0c;工作不常用&#xff0c;代码不需要手敲&#xff0c;理解能正确表达即可。 C类知识&#xff1a;工作和面试不常用&#xff0c;代码不…

中科星图GVE(案例)——AI实现道路提取分析

目录 简介 函数 gve.Services.AI.roadExtraction(fromGridRes) 代码 结果 中科星图GVE&#xff08;案例&#xff09;——AI实现道路提取分析 简介 AI实现道路提取分析是指利用人工智能技术&#xff0c;通过对图像或地理数据的处理和分析&#xff0c;自动识别和提取道路信…

创新设计大师项骅:用卓越才华打造医疗科技新未来

项骅,这位在设计界声名鹊起的才俊,正准备在其璀璨的职业生涯中开启一个激动人心的新篇章。近日,他宣布即将进军医疗科技领域,这一决定在设计圈和医疗界引起了广泛关注。项骅计划以UX设计师的身份,致力于改善医疗服务的用户体验。谈到这个新挑战,他显得兴致勃勃:"我期待将我…

WPS没保存关闭了怎么恢复文档数据呢?3个方法让你轻松恢复

在日常的工作和学习中&#xff0c;我们经常会使用WPS Office这款办公软件来处理文档、表格和演示文稿等文件。然而&#xff0c;有时由于各种原因&#xff0c;我们可能会在未保存的情况下关闭了WPS&#xff0c;导致重要的数据丢失。那么&#xff0c;WPS没保存关闭了怎么恢复数据…

图像及视频的基本操作

文章目录 一、认识计算机中的图像二、图像数据的读取三、数据读取-视频四、图像的其他操作 一、认识计算机中的图像 一张彩色图片是由很多个像素点组合而成的&#xff0c;而一个像素点是由R G B三个通道组成。RGB代表红色&#xff08;Red&#xff09;、绿色&#xff08;Green&a…

我常用的两个单例模式写法 (继承Mono和不继承Mono的)

不继承Mono 不继承Mono代表不用挂载到场景物体上面&#xff0c;因此直接饿汉式 加 合并空运算符判空创建实例 >(lambda表达式)的意思是get&#xff0c;就是将instance赋给Instance属性 //单例private static JsonDataManager instance new JsonDataManager();public stati…

【JavaScript进阶】深入探讨JS中的对象及其事件处理

1.JS中的对象(掌握) 1. Array数组对象&#xff08;重点&#xff09; 数组对象是使用单独的变量名来存储一系列的值。 1.1创建一个数组 创建一个数组&#xff0c;有三种方法。 【1】常规方式: let 数组名 new Array(); 【2】简洁方式: 推荐使用 let 数组名 new Array(数…

没有接口设计文档怎么做测试?

一、接口是什么&#xff1f; 1.官方解释&#xff1a;API(Application Programming Interface) 即应用程序接口。是一个软件组件&#xff0c;或是一个Web服务与外界进行交互的接口&#xff0c;这里接口可以和API划等号。 2.逐层叠加方式解释&#xff1a; 功能层面&#xff1a…

Vert.x,Web - Restful API

将通过Vert.x Web编写一个前后分离的Web应用&#xff0c;做为Vert.x Web学习小结。本文为后端部分&#xff0c;后端实现业务逻辑&#xff0c;并通过RESTfull接口给前端(Web页面)调用。 案例概述 假设我们要设计一个人力资源(HR)系统&#xff0c;要实现对员工信息的增删改查。…

MybatisPlus+Spring Boot3 分页查询实现

目录 导入依赖 本文的house表 直接复制粘贴运行即可 MybatisConfig配置文件 创建数据库对应的实体类 创建mapper层接口 在service包下创建xxxService接口 controller层创建XXXController类 完成分页查询 导入依赖 <!--注意 SpringBoot3的依赖与Spring Boot2的Mybatis…

时隔11年,再次被纳入标普500指数,戴尔科技股票是否该买入?

猛兽财经核心观点&#xff1a; &#xff08;1&#xff09;9月24日&#xff0c;戴尔科技时隔11年后再次被纳入了标普500指数。 &#xff08;2&#xff09;华尔街分析师普遍很看好戴尔科技&#xff0c;并强调了戴尔科技在人工智能服务器和强劲的收入增长。 &#xff08;3&#xf…

枚举在Java体系中的作用

1. 枚举 枚举是在JDK1.5以后引入的。主要用途是&#xff1a;将一组常量组织起来&#xff0c;在这之前表示一组常量通常使用定义常量的方式&#xff1a; //用public static final修饰常量 public static final int RED 1; public static final int GREEN 2; public static f…

深度学习-24-基于keras的十大经典算法之残差网络ResNet

文章目录 1 残差网络(ResNet)1.1 ResNet简介1.2 ResNet结构2 模型应用2.1 加载数据2.2 构建模型SimpleResNet2.2.1 simple_resnet_block2.2.2 SimpleResNet2.2.3 实例化模型2.2.4 模型训练2.2.5 模型预测2.3 构建模型ResNet182.3.1 residual_block2.3.2 ResNet182.3.3 训练模型…

Redis高并发缓存设计问题与性能优化

1、缓存设计典型问题 1.1、缓存穿透 缓存穿透是指查询一个根本不存在的数据&#xff0c;缓存层和存储层都不会命中&#xff0c;通常出于容错的考虑&#xff0c;如果从存储层查不到数据则不写入缓存层。 缓存穿透将导致不存在的数据每次请求都要到存储层去查询&#xff0c;失…