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; }