1.消失的尾巴
题意:题目中已经说的很清楚了,就不再赘述了
思路:判断((a*100)+i)%b是否等于0,等于0计数器就加1.
代码:
#include<stdio.h> int main(void) { int a,b; int i; while(~scanf("%d%d",&a,&b)) { if(a==0&&b==0) break; int count = 0; for(i = 0; i <= 99; i++) { if(((a*100)+i)%b==0) count++; } printf("%d\n",count); } }
2.WC的强迫症2
题意:在一排饭团中,每次选择一个比前面大的饭团,问最多可以选多少?
思路:最长上升子序列模板题
代码:
#include<stdio.h> const int MAX=1001; int main() { int i,j; int a[MAX]; int dp[MAX]; int n; while(~scanf("%d",&n)) { for(i=0;i<n;i++) scanf("%d",&a[i]); for(i=0;i<n;i++) { dp[i]=1; for(j=0;j<i;j++) { if(a[j]<a[i]&&dp[j]+1>dp[i]) dp[i]=dp[j]+1; } } int ans=0; for(i=0;i<n;i++) if(ans<dp[i]) ans=dp[i]; printf("%d\n",ans); } return 0; }
3.逆反的零一串
题意:给出0,输出1;给出1,输出0;
思路:给出0,输出1;给出1,输出0
扫描二维码关注公众号,回复:
60319 查看本文章
代码:
#include<stdio.h> #include<string.h> int main(void) { int i; char s[201]; while(gets(s)!=NULL) { int len = strlen(s); for(i = 0; i < len; i++) { if(s[i]=='1') s[i] = '0'; else s[i] = '1'; } puts(s); } return 0; }
4.又一道简单题
题意:题目中已给出,不再赘述
思路:四位数,每一位都修改后进行判断是否是完全平方数
代码:
#include<stdio.h> #include<math.h> bool f(int n) { int m; m = sqrt(n); if(m*m == n) return true; else return false; } int main(void) { int i; int t; scanf("%d",&t); int ans = 1; while(t--) { int count = 0; int n; scanf("%d",&n); int a = n%10; int b = n/10%10; int c = n/100%10; int d = n/1000; for(i = -a; i < 10-a; i++) //尝试个位 if(f(n+i)) { count++; } for(i = -b*10; i < 100-10*b; i= i+10) //尝试十位 if(f(n+i)) { count++; } for(i = -c*100; i < 1000-100*c; i=i+100) //尝试百位 if(f(n+i)) { count++; } for(i = 1000-d*1000; i < 10000-1000*d; i=i+1000)//尝试千位 if(f(n+i)) { count++; } if(f(n)) printf("Case %d: %d\n",ans++,count-4); //如果本身是完全平方数,需要-4,因为前边四个判断重复了 else printf("Case %d: %d\n",ans++,count); } return 0; }