C语言/C++常见习题问答集锦(四十五) 之数字之谜

2023-10-27

C语言/C++常见习题问答集锦(四十五) 之数字之谜

程序之美

在这里插入图片描述

1、最大公约数
题目描述
给定N个正整数,求他们的最大公约数。
本题要求函数实现,接口如下:

int gcd_array(int num[], int size);
求大小为size的数组num的gcd。
输入:
输入有两行组成。
第一行是正整数N.(1<=N<=1000).
第二行是N个空格分开的正整数,值均小于2的31次方。
输出:
输出N个数的最大公约数。
样例输入:
3
12 18 24
样例输出:
6

int gcd_array(int num[], int size){
    int g,j, max, flag = 1, k;
    max = 0;
    for(k = 0; k < size; k++){
        if (num[k] > max)
        {
            max = k;
        }  
    }

    for (j = num[max]; j >= 0; j --)
    {
        flag = 1;
        for (k = 0; k < size; k++)
        {
            if (num[k] % j != 0)
            {
                flag = 0;
                break;
            }
            
        }

        if (flag == 1)
        {
            g = j;
            break;
        }
        
        
    }
    return g;
}
#include<stdio.h>
int main(){
    int N, num[1000], gcd, i, size;
    scanf("%d", &N);
    size = N;
    for (i = 0; i < N; i++)
    {
        scanf("%d", &num[i]);
    }
    gcd = gcd_array(num, size);
    printf("%d\n", gcd);
    return 0;
}

运行结果:
在这里插入图片描述

2、给定一个字符串,现在有q次询问,每一次询问给定一个区间,找到这个区间内出现最多的字符,若有多个出现最多的字符,输出ASCII码小的那一个。
输入
输入第一行一个字符串。
第二行一个整数q,代表有q次询问,每一次询问给定一个区间I和r
1<=len(s)<=104,1<=q<=104,1<=I<=r<=len(s),保证字符串只有小写字母构成。
输出:
对于每一次查询,输出一个答案代表区间内出现次数最多的字符
提示
字符串输入请用整行读入,不要一个字符一个字符读入
样例输入
aabcdeacfg
3
1 8
2 7
4 10

输出:
a
a
c

#include <stdio.h>
#include <stdbool.h>
int IsSame(char s[], int m, int n){
    int i, max, ret;
    int cnt[128]={0};//用来统计个数。
	max = 0;
    for(i = m - 1; s[i]!='\0' && i < n - 1; ++i)//遍历字符串。
    {
        cnt[s[i]]++;//统计个数。 
		if (cnt[s[i]] > max)
		{
			max = cnt[s[i]];
			ret = i;
		}
		
    }
    return ret;
}

int main()
{

    char str[200];//存储字符串。
	int n, s, e, i, v[512];
    gets(str);//输入字符串。

	printf("请输入区域个数:\n");
	scanf("%d", &n);

	if (n <= 0)
	{
		return;
	}
	
	for (i = 0; i < n; i++)
	{	
		printf("请输入第%d组区域:\n", i + 1);
		scanf("%d %d", &s, &e);

		v[i] = IsSame(str, s, e);
	}
	
    printf("ASCII码小的字符分别为:\n");

	for(i = 0; i < n; i++){
		printf("%c\n", str[v[i]]);
	}
	getchar();
    return 0;
}

运行结果为:
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C语言/C++常见习题问答集锦(四十五) 之数字之谜 的相关文章

  • 来自 double 的 static_cast 可以优化分配给 double 吗?

    我偶然发现了一个我认为不必要的功能 并且通常让我感到害怕 float coerceToFloat double x volatile float y static cast
  • 如何使用T4从一个模板同时生成两个文件?

    我遇到的情况是 我需要生成两个 CSharp 代码文件 它们的代码几乎相同 但方法的输入和输出类型的命名空间不同 事实上 每个文件都针对特定国家 地区 并且类型来自特定国家 地区的 WSDL 我正在围绕服务编写一些包装器 逻辑完全相同 但从
  • 如何从经过身份验证的 SecurityToken 中获取声明

    我将令牌作为字符串传递到 SOAP 服务中 并验证了该令牌是否有效 我现在有一个 SecurityToken 在调试模式下我可以看到所有声明 特别是我想传递到另一个方法的 userId 声明 我似乎不知道如何获得这些索赔 现在 我解码了令牌
  • C++中类成员函数相互调用有什么好处?

    我是 C 新手 我发现下面的编程风格对我来说很有趣 我在这里写了一个简化版本 include
  • CMake(Ninja 后端)使用 /MT 编译

    我有一个类似的问题CMake 使用 MT 而不是 MD 进行编译 https stackoverflow com questions 14172856 cmake compile with mt instead of md但有一些差异 我正
  • 如何在 C# 中以编程方式将行添加到 DataGrid?

    正如标题所述 我正在尝试使用 C 以编程方式将行添加到 DataGrid 但我似乎无法使其工作 这是我到目前为止所拥有的 I have a DataGrid declared as dg in the XAML foreach string
  • 大量互斥体对性能的影响

    假设我有一个包含 1 000 000 个元素的数组 以及多个工作线程 每个线程都操作该数组中的数据 工作线程可能会使用新数据更新已填充的元素 但每个操作仅限于单个数组元素 并且独立于任何其他元素的值 使用单个互斥锁来保护整个数组显然会导致高
  • 当我尝试传递临时地址作为参数时,它是一个 UB 吗?

    对于以下 C 代码 include
  • 如何从 Powerpoint 2010 导出电影?

    如何使用 MS Office PIA 主互操作程序集 或其他方式以编程方式将嵌入视频从 powerpoint 2010 导出到外部文件 在演示文稿中嵌入视频是 Powerpoint 2010 中的一项新功能 我找不到解决方案 PPTX 文件
  • 为什么连续抛出 2 个异常不会生成无法访问的代码警告?

    为什么以下代码行不会创建编译器警告 void Main throw new Exception throw new Exception 据我所知 编译器应该通知您无法到达第二个抛出异常 这显然是一个编译器错误 它是在 C 3 0 中引入的
  • 使用任一默认捕获模式时,这是通过复制捕获还是 (*this) 通过引用捕获?是一样的吗?

    当我看到以下工作时我有点困惑 struct A void g void f g 但后来我发现this https stackoverflow com a 16323119 5825294答案非常详细地解释了它是如何工作的 本质上 它归结为t
  • MINIX内部碎片2

    我正在用 C 语言编写一些软件 它递归地列出给定目录中的所有文件 现在我需要计算出内部碎片 我花了很长时间研究这个问题 发现 ext2 上的内部碎片只发生在最后一个块中 我知道理论上你应该能够从索引节点号获得第一个和最后一个块地址 但我不知
  • 运行实体框架自定义工具,它有什么作用?

    在 Visual Studio 中 当使用实体框架并为 tt 和 Context tt 文件应用运行自定义工具时 它是什么以及它有什么作用 为什么它解决数据库同步问题 有时 为什么我应该在运行 tt 之前运行它 Context tt 它被称
  • 在 clang 中向量化函数

    我正在尝试根据此用 clang 对以下函数进行矢量化铿锵参考 http llvm org docs Vectorizers html 它采用字节数组向量并根据以下条件应用掩码this RFC https www rfc editor org
  • 让 Windows 尝试读取文件

    我正在对 Windows 文件系统进行某种封装 当用户请求打开文件时 Windows 调用我的驱动程序来提供数据 在正常操作中 驱动程序返回缓存的文件内容 但是 在某些情况下 实际文件没有缓存 我需要从网络下载它 问题是是否有可能让 Win
  • 查找数组中的多个索引

    假设我有一个像这样的数组 string fruits watermelon apple apple kiwi pear banana 是否有一个内置函数可以让我查询 apple 的所有索引 例如 fruits FindAllIndex ap
  • 为什么存在系统调用

    我一直在阅读有关系统调用及其在 Linux 中如何工作的内容 我还有更多的阅读要做 但我读过的一件事都没有回答 那就是 为什么我们需要系统调用 我知道系统调用是用户空间程序要求内核执行某些操作的请求 但我的问题基本上是 为什么用户空间程序本
  • C++ 中的析构函数

    我的 AB h 文件中有一个构造函数 class AB private int i public AB i 0 constructor AB i 0 destructor virtual void methodA unsigned int
  • 如何配置 qt Creator 以显示 C++ 代码而不是反汇编程序?

    昨天我做了很多事情 比如更新 GCC Clang 和重新安装 Qt Creator 今天 在逐步调试我的代码时 调试器显示的是反汇编代码 而不是我编写的 C 代码 紧迫F10 or F11 调试器正在进入汇编代码而不是 cpp nor h我
  • 使用空的weak_ptr作为参数调用map::count安全吗?

    打电话安全吗map count http www cplusplus com reference map map count on an 未初始化因此为空weak ptr http en cppreference com w cpp mem

随机推荐