打印沙漏(真题1017)
#include <stdio.h>
int main()
{
int n,s,m=0;
char c;
scanf("%d %c",&n,&c);
while(2*m*m-1<=n){
m++;
}
m=m-1;
s=n-2*m*m+1;
int r=2*m-1;
for(int i=r;i>=1;i-=2){
for(int j=0;j<(r-i)/2;j++)
printf(" ");
for(int j=0;j<i;j++)
printf("%c",c);
printf("\n");
}
for(int i=3;i<=r;i+=2){
for(int j=(r-i)/2;j>0;j--)
printf(" ");
for(int j=0;j<i;j++)
printf("%c",c);
printf("\n");
}
printf("%d",s);
return 0;
}
在霍格沃茨找零钱(真题1027)
#include <stdio.h>
int money(int g,int s,int k){
int p;
p=g*493+s*29+k;
return p;
}
int main()
{
int g1,s1,k1,g2,s2,k2,temp,t;
int g,s,k;
scanf("%d.%d.%d %d.%d.%d",&g1,&s1,&k1,&g2,&s2,&k2);
temp=money(g2,s2,k2)-money(g1,s1,k1);
if(temp>=0){
k=temp%29;
s=temp/29%17;
g=temp/493;
}else{
t=-temp;
k=t%29;
s=t/29%17;
g=-t/493;
}
printf("%d.%d.%d\n",g,s,k);
return 0;
}
个位数统计(真题1011)
#include <stdio.h>
#include <string.h>
int main()
{
char a[1001];
gets(a);
int len=strlen(a);
int b[10]={0};
for(int i=0;i<len;i++){
b[a[i]-'0']++;
}
for(int i=0;i<10;i++){
if(b[i]>0){
printf("%d:%d\n",i,b[i]);
}
}
return 0;
}