C语言中的模运算-hdu6124(打表,找规律)

题目链接:https://vjudge.net/problem/HDU-6124

题目描述:

题目大意就是给你一个数,判断这个数 % 其它数后共有几种结果。

这题对我来说最大的难点是我不太知道每个数 余 其他的数应该得出什么结果,后来参考了别人的博客,才弄清楚了。现在我就举一些例子来说明一下:

对于任何数a,a%1=a%a=0;如果a是偶数,a%2=0;如果a是奇数,a%2=1;对于任何比a大的数biga来说,biga%a=a(这点是我开始时不怎么确定的)

通过对几组测试案例的分析发现,当a=1时,结果ans=1,当a为偶数时,ans=a/2+1,当a为奇数时,ans=a/2+2。

代码转载自:https://blog.csdn.net/jianbagengmu/article/details/77199144

代码实现:

#include<iostream>
#include<cstdio>
using namespace std;
int main()
{
    int T;scanf("%d",&T);
    while(T--){
        int a,ans;
        scanf("%d",&a);
        if(a==1)
            ans=2;
        else if(a%2==0)
            ans=a/2+1;
        else
            ans=a/2+2;
        printf("%d\n",ans);
    }
    return 0;
}

原文地址:https://www.cnblogs.com/LJHAHA/p/10052439.html

时间: 2024-10-12 17:56:20

C语言中的模运算-hdu6124(打表,找规律)的相关文章

关于c语言中的位运算。。。

位运算是一种针对二进制数的一种运算 位运算 共有六种 都有其对应得操作符号 &      (and)      位于 |        (or)         位或 ~      (not)        取反 ^       (xor)        异或 >>    (shr)    右移一位 <<    (shl)     左移一位 运算说明: === 1. and运算 === and运算通常用于二进制取位操作,例如一个数 and 1的结果就是取二进制的最末位.这可

【ZOJ】3785 What day is that day? ——浅谈KMP应用之ACM竞赛中的暴力打表找规律

首先声明一下,这里的规律指的是循环,即找到最小循环周期.这么一说大家心里肯定有数了吧,“不就是next数组性质的应用嘛”. 先来看一道题 ZOJ 3785 What day is that day? Time Limit: 2 Seconds      Memory Limit: 65536 KB It's Saturday today, what day is it after 11 + 22 + 33 + ... + NN days? Input There are multiple tes

5/30 c语言中的位运算

1.什么是位运算? 位运算是指按二进制位进行的运算.因为在系统软件中,常要处理二进制的问题.储存单元中的各二进制位左移或者右移一位,两个数按位相加等.c语言灵活,接近底层,对程序员的要求高,不像其他语言对c语言进行了封装,出错性会高很多. 2.位运算符和位运算. 运算符&按位与  ~取反 |按位或    <<左移  ^按位或   >>右移.位运算中除了~以外,均为二元元运算符,即要求两侧各有一个运算量. 3.与&的应用. 清零,无论任何一个二进制的书与上一个0000

嵌入式c语言中的位运算

位运算在嵌入中也是一个重要的点,下面就简单介绍和举一些有用的例子,如果有不足的话,请补充,废话不多说,直接开始! 位运算操作符有6个:&,|,^,~,>>,<< &   只有1&1才等于1,其它都为0 |   只有0|0才等于0,其它都为1 ^   异或,相异为1,相同为0,用来检查两个操作数的某对应位是否一致 ~   非,按位反,任何数的非与数本身相加都等于-1(如果不懂的话,请查看下一篇补码) >>  左移,相当乘以2-->左移之后,后

C#语言中数据的运算

1.数字运算:数字与数字的运算 支持运算:加(+).减(-).乘(*).除(/).求余(%) 返回运算:与运算类型相同 (1)int类型的数据与int类型的数据运算,返回运算是int类型: (2)double类型的数据与double类型的数据运算,返回运算是double类型: (3)double类型的数据与int类型的数据运算,返回运算是double类型. 2.字符串运算 支持运算:拼接(+) 返回类型:字符串 原文地址:https://www.cnblogs.com/badren/p/9281

【转】C语言中整型运算取Ceiling问题

原文:http://blog.csdn.net/laciqs/article/details/6662472 ------------------------------------------------------- 此题来自:<Linux C编程一站式学习> 假设变量x和n是两个正整数,我们知道x/n这个表达式的结果要取Floor,例如x是17,n是4,则结果是4.如果希望结果取Ceiling应该怎么写表达式呢?例如x是17,n是4,则结果是5:x是16,n是4,则结果是4. 网上对这道

【NOIP 模拟赛】中值滤波 打表找规律

对于这样看起来不像什么算法也没什么知识点的题,一脸懵逼的话不是手推规律就是打表找规律......... 当然还有一些超出你能力之外的数学题...... #include <cstdio> const int N=500010; int n,ans,A[N]; inline int Max(int x,int y){ return x>y?x:y; } int main(){ scanf("%d",&n); int last,now,P=0; for(int i

C语言中复数运算及调用blas,lapack中复数函数进行科学计算

C语言中常用的数据类型主要int, float ,double ,char 等,但在科学运算中复数扮演着重要角色.这里讲下C语言中的复数运算以及如何调用blas,lapack库中的复数函数来进行科学计算. 1.C语言中的复数运算. C语言中若要用的复数,需要包含头文件complex.h,下面看看一些基本的例子 #include <stdio.h> #include"complex.h" int main() { complex a, b, c, d, f; a = 1 +

深入理解计算机系统(2.2)---布尔代数以及C语言上的位运算

本文转载地址:http://www.cnblogs.com/zuoxiaolong/p/computer6.html 布尔代数上的位运算 布尔代数是一个数学知识体系,它在0和1的二进制值上演化而来的. 我们不需要去彻底的了解这个知识体系,但是里面定义了几种二进制的运算,却是我们在平时的编程过程当中也会遇到的.这四种运算分别是或.与.非和异或.下图展示了在布尔代数的知识体系中,对这四种运算的定义. 从左至右依次是非.与.或以及异或.这个图阐述的是针对一位二进制的运算结果,我们可以将其扩大到N位二进