1
5
40 codeforce老题,妈蛋,看到标程一口血! #include<cstdio>
#include<cstring>
#include<algorithm>
#include<cstdlib>
int main()
{int n;while(scanf("%d",&n)!=EOF){if(n==0) break;int sum=0;int t=n;while(t>2){sum+=t/3;int k=t/3;t=k+t%3;//printf(" %d\n",sum);}if(n>=3&&t==2) sum+=1;printf("%d\n",sum);}return 0;
} 看到标程,推算一下,那个结果就是n/2!!!
#include <stdio.h>int main()
{//freopen("a.in", "r", stdin);//freopen("A.out", "w", stdout);int n;while(scanf("%d", &n), n){printf("%d\n", n / 2);}return 0;
}
弟弟的作业 | Time
Limit: 1000ms, Special Time Limit:2500ms, Memory Limit:65536KB | Total submit users: 100, Accepted users: 93 | Problem
10931 : No special judgement | Problem description | 你的弟弟刚做完了“100以内数的加减法”这部分的作业,请你帮他检查一下。每道题目(包括弟弟的答案)的格式为a+b=c或者a-b=c,其中a和b是作业中给出的,均为不超过100的非负整数;c是弟弟算出的答案,可能是不超过200的非负整数,也可能是单个字符"?",表示他不会算。
| Input | 输入文件包含不超过100行,以文件结束符结尾。每行包含一道题目,格式保证符合上述规定,且不包含任何空白字符。输入的所有整数均不含前导0。
| Output | 输出仅一行,包含一个非负整数,即弟弟答对的题目数量。
| Sample Input | 1+2=3
3-1=5
6+7=?
99-0=99
| Sample Output | 2 | Problem Source | The Sixth Hunan Collegiate Programming Contest | 我的代码,又臭又长!!!! #include<cstdio>
#include<cstring>
#include<cmath>
int main()
{char s[20];int sum=0,base;int sum1,sum2,sum3;while(scanf("%s",s)){//if(s[0]=='E'&&s[1]=='O'&&s[2]=='F') break;int len=strlen(s);int bj;for(int i=0;i<len;i++){if(s[i]=='+'||s[i]=='-') {bj=i;break;}}sum1=0;base=1;for(int i=bj-1;i>=0;i--){sum1+=(s[i]-'0')*base;base*=10;}sum2=0;int bjbj;for(int i=bj+1;i<len;i++){if(s[i]=='=') {bjbj=i;break;}}base=1;for(int i=bjbj-1;i>bj;i--){sum2+=(s[i]-'0')*base;base*=10;}sum3=0;int base=1;for(int i=len-1;s[i]!='=';i--){sum3+=(s[i]-'0')*base;base*=10;}if(s[bj]=='+'){if(sum1+sum2==sum3) sum+=1;}else if(s[bj]=='-'){if(sum1-sum2==sum3) sum+=1;}//printf("%d %d %d %d\n",sum1,sum2,sum3,sum);}printf("%d\n",sum);return 0;
}
标程!又一次哭了! <pre name="code" class="cpp">#include<stdio.h>
int main() {char s[99];int a, b, c, n = 0;while(scanf("%s", &s) == 1) {if(sscanf(s, "%d+%d=%d", &a, &b, &c) == 3 && a+b==c) n++;if(sscanf(s, "%d-%d=%d", &a, &b, &c) == 3 && a-b==c) n++;}printf("%d\n", n);return 0;
}
数字整除 | Time Limit: 1000ms, Special
Time Limit:2500ms, Memory Limit:65536KB | Total submit users: 89, Accepted users: 83 | Problem 10932 : No
special judgement | Problem description | 定理:把一个至少两位的正整数的个位数字去掉,再从余下的数中减去个位数的5倍。当且仅当差是17的倍数时,原数也是17的倍数 。 例如,34是17的倍数,因为3-20=-17是17的倍数;201不是17的倍数,因为20-5=15不是17的倍数。输入一个正整数n,你的任务是判断它是否是17的倍数。 | Input | 输入文件最多包含10组测试数据,每个数据占一行,仅包含一个正整数n(1<=n<=10100),表示待判断的正整数。n=0表示输入结束,你的程序不应当处理这一行。 | Output | 对于每组测试数据,输出一行,表示相应的n是否是17的倍数。1表示是,0表示否。 | Sample Input | 34201209876541317171717171717171717171717171717171717171717171717180 | Sample Output | 1010 | Problem Source | The Sixth Hunan Collegiate Programming Contest |
#include<stdio.h>
#include<string.h>
int main()
{char s[200];while(scanf("%s", &s) == 1) {if(!strcmp(s, "0")) break;int m = 0;int ss=strlen(s);m=s[0]-'0';for(int i = 1; i < ss; i++){m = (m*10+s[i]-'0')%17;//printf("%d\n",m);}printf("%d\n", m==0?1:0);}return 0;
} 早上俩小时拍出来三题,晚上看后面的,其实就是直接拍就好了,脑残水!
|