hdu2051

十进制转二进制,太水不谈

 1 #include<stdio.h>
 2 void cmp(int n)
 3 {
 4     if (n>1) cmp(n/2);
 5     printf("%d",n%2);
 6 }
 7 int main()
 8 {
 9     int n;
10     while (scanf("%d",&n)!=EOF)
11     {
12         cmp(n);
13         printf("\n");
14     }
15     return 0;
16 }
View Code

 

hdu2052

按给出的长和宽输出矩形,太水

 1 #include<stdio.h>
 2 int main()
 3 {
 4     int n,m;
 5     while (scanf("%d%d",&n,&m)!=EOF)
 6     {
 7         int i,j;
 8         char x[75][75];
 9         for (i=0;i<75;i++) for (j=0;j<75;j++) x[i][j]=' ';
10         x[0][0]=x[0][m+1]=x[n+1][0]=x[n+1][m+1]='+';
11         for (i=1;i<m+1;i++) x[0][i]=x[n+1][i]='|';
12         for (i=1;i<n+1;i++) x[i][0]=x[i][m+1]='-';
13         for (i=0;i<=m+1;i++)
14         {
15             for (j=0;j<=n+1;j++) printf("%c",x[j][i]);
16             printf("\n");
17         }
18         printf("\n");
19     }
20     return 0;
21 }
View Code

 

hdu2053

有一排灯一开始全暗着,第 i 秒编号为 i 倍数的灯改变开关情况,问最后某盏灯情况,暴力模拟也行,求因子个数也行

 1 #include<stdio.h>
 2 int main()
 3 {
 4     long long n;
 5     while (scanf("%I64d",&n)!=EOF)
 6     {
 7         int i,count=0;
 8         for (i=1;i<=n;i++) if (n%i==0) count++;
 9         if (count%2) printf("1\n");
10         else printf("0\n");
11     }
12     return 0;
13 }
View Code

 

hdu2054

新人小盆友们的噩梦,怎么==都是WA,AC之神永远不站在你那边```是的,如此丧病的题目啊```

  1 #include<stdio.h>
  2 #include<string.h>
  3 long long fun1(char x[],long long len)    //处理整数
  4 {
  5     long long i;
  6     while (x[0]=='0'&&len>1)
  7     {
  8         for (i=1;i<len;i++)
  9         {
 10             x[i-1]=x[i];
 11         }
 12         len--;
 13     }
 14     return len;
 15 }
 16 
 17 long long fun2(char x[],long long len)    //处理小数
 18 {
 19     long long i;
 20     if (x[0]=='.')
 21     {
 22         for (i=len-1;i>=0;i--) x[i+1]=x[i];
 23         x[0]='0';
 24         len++;
 25     }
 26     while (x[0]=='0'&&x[1]!='.')
 27     {
 28         for (i=1;i<len;i++) x[i-1]=x[i];
 29         len--;
 30     }
 31     while (x[len-1]=='0') len--;
 32     return len;
 33 }
 34 
 35 long long fun3(char x[],long long len)    //处理后置0,去除+,判断-0
 36 {
 37     long long i,j;
 38     if (x[0]=='+')
 39     {
 40         for (i=1;i<len;i++) x[i-1]=x[i];
 41         len--;
 42     }
 43     bool flag=1;
 44     for (i=0;i<len;i++)
 45     {
 46         if (x[i]=='.')
 47         {
 48             for (j=i+1;j<len;j++)
 49             {
 50                 if (x[j]!='0')
 51                 {
 52                     flag=0;
 53                     break;
 54                 }
 55             }
 56             break;
 57         }
 58     }
 59     if (x[0]=='-')
 60     {
 61         for (i=1;i<len;i++)
 62         {
 63             if (x[i]>='1'&&x[i]<='9') break;
 64         }
 65         if (i==len) 
 66         {
 67             for (i=1;i<len;i++) x[i-1]=x[i];
 68             len--;
 69         }
 70     }
 71     if (flag) return i;
 72     return len;
 73 }
 74 
 75 int main()
 76 {
 77     char a[100000],b[100000];
 78     while (scanf("%s%s",a,b)!=EOF)
 79     {
 80         long long len1,len2,i;
 81         len1=strlen(a);
 82         len2=strlen(b);
 83         len1=fun3(a,len1);
 84         len2=fun3(b,len2);
 85         bool flag1=1,flag2=1;                                                    //1表示整数,0表示小数
 86         if ((a[0]=='-'&&b[0]!='-')||(b[0]=='-'&&a[0]!='-')) printf("NO\n");        //判断是否同正负
 87         else
 88         {
 89             {                                                                    //判断分别为整数或小数
 90                 for (i=0;i<len1;i++) if (a[i]=='.') 
 91                 {
 92                     flag1=0;
 93                     break;
 94                 }
 95                 for (i=0;i<len2;i++) if (b[i]=='.') 
 96                 {
 97                     flag2=0;
 98                     break;
 99                 }
100             }
101             if (flag1!=flag2) printf("NO\n");                                    //不同为整数或小数直接判NO
102             else 
103             {                                                                    
104                 if (a[0]=='-'&&b[0]=='-')                                        //如有负号先去掉
105                 {
106                     for (i=1;i<=len1;i++) a[i-1]=a[i];
107                     len1--;
108                     for (i=1;i<=len2;i++) b[i-1]=b[i];
109                     len2--;
110                 }
111                 if (flag1&&flag2)
112                 {
113                     len1=fun1(a,len1);
114                     len2=fun1(b,len2);
115                 }
116                 else 
117                 {
118                     len1=fun2(a,len1);
119                     len2=fun2(b,len2);
120                 }
121                 if (len1!=len2) printf("NO\n");
122                 else 
123                 {
124                     for (i=0;i<len1;i++) if (a[i]!=b[i]) break;
125                     if (i==len1) printf("YES\n");
126                     else printf("NO\n");
127                 }
128             }
129         }
130     }
131     return 0;
132 }
View Code

 

hdu2055

加法乱搞

 1 #include<stdio.h>
 2 
 3 int main()
 4 {
 5     int T;
 6     while (scanf("%d",&T)!=EOF)
 7     {
 8         int i;
 9         for (i=1;i<=T;i++)
10         {
11             char x;
12             long long y,t;
13             scanf("%s%I64d",&x,&y);
14             if (x>='A'&&x<='Z') t=x-64;
15             if (x>='a'&&x<='z') t=96-x;
16             printf("%I64d\n",t+y);
17         }
18     }
19     return 0;
20 }
View Code

 

hdu2056

给出两个矩阵的对角线上两点,计算相交面积,当初WA六法,始终不知道到底为什么错,后来推了重写过了```

 1 #include<stdio.h>
 2 int main()
 3 {
 4     double x1,x2,x3,x4,y1,y2,y3,y4;
 5     while (scanf("%lf%lf%lf%lf%lf%lf%lf%lf",&x1,&y1,&x2,&y2,&x3,&y3,&x4,&y4)!=EOF)
 6     {
 7         double t,s,a,b,c,d;
 8         if (x1>x2)
 9         {
10             t=x1;
11             x1=x2;
12             x2=t;
13         }
14         if (y1>y2)
15         {
16             t=y1;
17             y1=y2;
18             y2=t;
19         }
20         if (x3>x4)
21         {
22             t=x3;
23             x3=x4;
24             x4=t;
25         }
26         if (y3>y4)
27         {
28             t=y3;
29             y3=y4;
30             y4=t;
31         }
32         if (y2<=y3||y4<=y1||x2<=x3||x4<=x1) s=0;
33         else 
34         {
35             a=(x1>x3)?x1:x3;
36             b=(x4>x2)?x2:x4;
37             c=(y1>y3)?y1:y3;
38             d=(y4>y2)?y2:y4;
39             s=(b-a)*(d-c);
40         }
41         printf("%.2lf\n",s);
42     }
43     return 0;
44 }
View Code

 

hdu2057

ifelse乱搞题

 1 #include<stdio.h>
 2 #include<string.h>
 3 
 4 long long pow1(int a,int b)
 5 {
 6     int i;
 7     long long s=1;
 8     for (i=1;i<=b;i++) s*=a;
 9     return s;
10 }
11 
12 long long cmp1(char a[],int len)
13 {
14     int i;
15     long long s=0;
16     for (i=0;i<len;i++)
17     {
18         if (a[i]>='a'&&a[i]<='f') a[i]-=87;
19         if (a[i]>='A'&&a[i]<='F') a[i]-=55;
20         if (a[i]>='0'&&a[i]<='9') a[i]-=48;
21         s+=(a[i]*(pow1(16,len-i-1)));
22     }
23     return s;
24 }
25 
26 void cmp2(long long N)
27 {
28     char a[17]="0123456789ABCDEF";
29     if (N>=16) cmp2(N/16);
30     printf("%c",a[N%16]);
31 }
32 
33 int main()
34 {
35     char a[16],b[16];
36     while (scanf("%s%s",a,b)!=EOF)
37     {
38         bool flag1=1,flag2=1;
39         int i,len1=strlen(a),len2=strlen(b);
40         long long s;
41         if (a[0]=='-')
42         {
43             flag1=0;
44             for (i=1;i<len1;i++) a[i-1]=a[i];
45             len1--;
46             a[len1]='\0';
47         }
48         if (b[0]=='-')
49         {
50             flag2=0;
51             for (i=1;i<len2;i++) b[i-1]=b[i];
52             len2--;
53             b[len2]='\0';
54         }
55         if (a[0]=='+')
56         {
57             for (i=1;i<len1;i++) a[i-1]=a[i];
58             len1--;
59             a[len1]='\0';
60         }
61         if (b[0]=='+')
62         {
63             for (i=1;i<len2;i++) b[i-1]=b[i];
64             len2--;
65             b[len2]='\0';
66         }
67         if (flag1&&flag2) s=cmp1(a,len1)+cmp1(b,len2);
68         if ((!flag1)&&(!flag2)) {printf("-");s=cmp1(a,len1)+cmp1(b,len2);}
69         if ((!flag1)&&flag2)
70         {
71             s=cmp1(b,len2)-cmp1(a,len1);
72             if (s<0) {printf("-");s=-s;}
73         }
74         if (flag1&&(!flag2))
75         {
76             s=s=cmp1(a,len1)-cmp1(b,len2);
77             if (s<0) {printf("-");s=-s;}
78         }
79         cmp2(s);
80         printf("\n");
81     }
82     return 0;
83 }
View Code

 

hdu2058

10^9,On也会挂的,所以先要发现条件```然后乱搞```

 1 #include<stdio.h>
 2 #include<math.h>
 3 int main()
 4 {
 5     int N,M;
 6     while (scanf("%d%d",&N,&M)!=EOF)
 7     {
 8         if (N!=0||M!=0)
 9         {
10             int l,a;
11             for (l=sqrt(M*2.0);l>=1;l--)
12             {
13                 a=M*1.0/l-l*1.0/2+1.0/2;
14                 if ((2*a+l-1)*l==2*M) printf("[%d,%d]\n",a,a+l-1);
15             }
16             printf("\n");
17         }
18     }
19     return 0;
20 }
View Code