心得:

  学到了基本知识:取模和取余是不一样的,取模与取余的定义分别为:

  取余:rem(x,y)=x-y.*fix(x/y)

  取模:mod(x,y)=x-y.*floor(x/y)

  其中,fix()向0取整,floor向负无穷取整,当商为正数时,二者方向一致,所以结果一致,当商为负数时,方向相反,所以结果不一致。

  下面是代码:

 1 /*{
 2 PROG:combo
 3 LANG:C++
 4 ID:jzyjzy2
 5 }*/
 6 
 7 #include <stdio.h>
 8 #include <stdlib.h>
 9 #include <iostream>
10 int main()
11 {
12 
13     freopen ("combo.in","r",stdin);
14     freopen ("combo.out","w",stdout);
15     int N;
16     int Jonh[3]={0};
17     int Master[3]={0};
18     scanf("%d%d%d%d%d%d%d",&N,&Jonh[0],&Jonh[1],&Jonh[2],&Master[0],&Master[1],&Master[2]);
19 
20     int result=N<5?N*N*N*2:250;
21     int repeated=1;
22     int i=0;
23     for(i=0;i<3;i++)
24     {
25         int temp=(Jonh[i]-Master[i])%N>0?(Jonh[i]-Master[i])%N:(Master[i]-Jonh[i])%N;
26         temp=N-temp>temp?temp:N-temp;
27         temp=N>5?5-temp:N;
28         if(temp<0)
29             temp=0;
30         repeated*=temp;
31     }
32     result-=repeated;
33     printf("%d\n",result);
34     return 0;
35 }
View Code

 

posted on 2018-05-15 09:53  醉春雨  阅读(202)  评论(0)    收藏  举报