1012 数字分类

简介: 1012 数字分类

题目描述

点击直达题目链接

解题思路

对于A1到A5,我们用5个函数分别求。

在下面的代码中,用find表示是否查找到出现过该种类型的数字,出现过赋值为1,没有出现为0.

具体实现看下面的代码

代码

#include <stdio.h>
#include <stdlib.h>
int find = 0;
int f1(int* a, int n)
{
  find = 0;
  int i = 0,sum=0;
  for (; i < n; i++)
  {
    if (a[i] % 5 == 0&&a[i]%2==0)
    {
      find = 1;
      sum += a[i];
    }
  }
  return sum;
}
int f2(int* a, int n)
{
  find = 0;
  int i = 0, sum = 0, x = 1;
  for (; i < n; i++)
  {
    if (a[i] % 5 == 1)
    {
      find = 1;
      sum += x * a[i];
      x = -1*x;
    }
  }
  return sum;
}
int f3(int* a, int n)
{
  find = 0;
  int i = 0, sum = 0;
  for (; i < n; i++)
  {
    if (a[i] % 5 == 2 )
    {
      find = 1;
      sum++;
    }
  }
  return sum;
}
double f4(int* a, int n)
{
  find = 0;
  int i = 0, sum = 0,count=0;
  for (; i < n; i++)
  {
    if (a[i] % 5 == 3 )
    {
      find = 1;
      sum += a[i];
      count++;
    }
  }
  return (double)sum/count;
}
int f5(int* a, int n)
{
  find = 0;
  int i = 0, max = 0;
  for (; i < n; i++)
  {
    if (a[i] % 5 == 4)
    {
      find = 1;
      if(max<a[i])
      max = a[i];
    }
  }
  return max;
}
int main()
{
  int n,i;
  scanf("%d", &n);
  int* a = (int*)malloc(n * sizeof(int));
  if (a == NULL)
  {
    return 0;
  }
  for (i = 0; i < n; i++)
  {
    scanf("%d", a + i);
  }
  
  int ret=f1(a, n);
  if (find == 0)
  {
    printf("N ");
  }
  else
  {
    printf("%d ",ret);
  }
  
  ret=f2(a, n);
  if (find == 0)
  {
    printf("N ");
  }
  else
  {
    printf("%d ", ret);
  }
  
  ret = f3(a, n);
  if (find == 0)
  {
    printf("N ");
  }
  else
  {
    printf("%d ", ret);
  }
  
  double b=f4(a, n);
  if (find == 0)
  {
    printf("N ");
  }
  else
  {
    printf("%.1lf ", b);
  }
  
  ret = f5(a, n);
  if (find == 0)
  {
    printf("N ");
  }
  else
  {
    printf("%d ", ret);
  }
  free(a);
  a=NULL:
  return 0;
}

相关文章
|
8月前
|
C++
[C++] 提取字符串中的所有数字并组成一个数
[C++] 提取字符串中的所有数字并组成一个数
165 0
|
8月前
数字组合 (计蒜客 - T1218)
数字组合 (计蒜客 - T1218)
数字的转化规则?
转换规则:不管你要转的数据是什么,都是一位一位的去检测,如果第一位可以转成数字,就转,依次往后看每一位,直到碰到不能转或者转完为止,如果转不成就直接NaN
119 0
使用scanpy进行高可变基因的筛选
使用scanpy进行高可变基因的筛选
|
Rust 自然语言处理 算法
【算法】1365. 有多少小于当前数字的数字(多语言实现)
给你一个数组 nums,对于其中每个元素 nums[i],请你统计数组中比它小的所有数字的数目。 换而言之,对于每个 nums[i] 你必须计算出有效的 j 的数量,其中 j 满足 j != i 且 nums[j] < nums[i] 。 以数组形式返回答案。
【算法】1365. 有多少小于当前数字的数字(多语言实现)
|
存储 算法 数据挖掘
手写数字识别系统之数字提取
引言 所谓数字分割就是指将经过二值化后的图像中的单个数字区域进行提取的过程。数字分割在数字识别中是一个必不可少的关键步骤,只有能够将数字进行准确的提取,才能将其一一识别。
1325 0
|
算法 C++
算法题:特殊的数字
我们规定,对于一个整数 a,如果其各位数字相加之和能够被 4 整除,则称它是一个特殊数字。 现在,给定一个整数 n,请你计算并输出不小于 n 的最小特殊数字。 输入格式
112 0
每日一更1222:数字统计
题目描述: 一本书的页码从自然数1 开始顺序编码直到自然数n。书的页码按照通常的习惯编排, 每个页码都不含多余的前导数字0。例如,第6 页用数字6 表示,而不是06 或006 等。数 字计数问题要求对给定书的总页码n,计算出书的全部页码中分别用到多少次数字0,1, 2,…,9。
136 0