C语言/C++常见习题问答集锦(四十五) 之数字之谜
2023-09-14 09:01:32 时间
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;
}
运行结果为:
相关文章
- EasyC++54,名称空间其他特性
- C++丨初识C++像极了C语言
- C++ 23种设计模式(6)-适配器模式
- c++获取子类窗口句柄位置_C++中各种获取窗口句柄的方法「建议收藏」
- 【笔记】《深入理解C++11》(上)
- C++解LeetCode225. 用队列实现栈(适合基础薄弱)
- C++构造函数的作用_c++什么是构造函数
- c++ 分苹果_接苹果问题C语言
- 《安富莱嵌入式周报》第294期:将C/C++代码转换为各种高级语言,超炫渲染着色器,VS2022新闻插件,基于以太网的开源步进电机控制器,Arduino PLC
- c++的链表-C++链表
- c++的链表-C++实现简单链表
- C/C++ 搜索缝隙并插入ShellCode
- c++基础篇之c++模板
- 【C++】C++入门
- c++基础篇之C++ 模板
- 校招找C++后台开发该准备什么样的项目比较好呢?
- C++ seekg函数用法详解
- C语言/C++字符编码方式解析
- Android模拟器(JAVA)与C++socket通讯分享
- c++双向链表操作示例(创建双向链、双向链表中查找数据、插入数据等)
- C++函数模板与类模板实例解析
- 马尔可夫链算法(markov算法)的awk、C++、C语言实现代码