L1-046 整除光棍
#include <stdio.h>
int main()
{
int n,r=1,w=1;//r用来表示光棍数,w用来计算光棍数的位数
scanf("%d",&n);
while(r<n)
{
r*=10;
r++;
w++;
}
while(1)
{
printf("%d",r/n);//一位一位取光棍数除以输入的奇数得到的另一个因子
r%=n;
if(r==0)
break;
r=r*10+1;//因为r是光棍数,所以要+1
w++;//计算光棍数的位数;
}
printf(" %d",w);
return 0;
}
L1-047 装睡
#include <stdio.h>
int main()
{
int n,b,c;
char a[100];
scanf("%d",&n);
for(int i=0;i<n;i++)
{
scanf("%s %d %d",a,&b,&c);
if(b<15||b>20||c<50||c>70)
printf("%s\n",a);
}
return 0;
}
L1-048 矩阵A乘以B
#include<stdio.h>
int main(){
int a,b,c,d,i,j,k,sum=0;
scanf("%d %d",&a,&b);
int s1[a][b];
for(i=0;i<a;i++)
for(j=0;j<b;j++)
scanf("%d",&s1[i][j]);
scanf("%d%d",&c,&d);
int s2[c][d];
for(i=0;i<c;i++)
for(j=0;j<d;j++)
scanf("%d",&s2[i][j]);
if(b!=c)
printf("Error: %d != %d",b,c);
else{
printf("%d %d\n",a,d);
int s3[a][d];
for(i=0;i<a;i++)
{
for(j=0;j<d;j++)
{
int sum=0;
for(k=0;k<b;k++)
{
sum+=(s1[i][k]*s2[k][j]);
s3[i][j]=sum;
}
}
}
for(i=0;i<a;i++)
{
for(j=0;j<d;j++)
{
printf("%d",s3[i][j]);
if(j!=d-1)
printf(" ");
}
if(i!=a-1)
printf("\n");
}
}
return 0;
}
L1-049 天梯赛座位分配
#include<stdio.h>
int main()
{
int n = 0;
scanf("%d", &n);
int num[101] = { 0 };
int i = 0;
int max = 0;
int id = 0;
int pos[101][11][11] = { 0 };
int pre = 0;
for (i = 1; i <= n; i++)
{
scanf("%d", &num[i]);
max = num[i] > max ? num[i] : max;
}
int j = 0;
for (j = 1; j <= max; j++)
{
int k = 0;
for (k = 1; k <= 10; k++)
{
for (i = 1; i <= n; i++)
{
if (j <= num[i])
{
if (pre == i)
{
id += 2;
}
else
{
id += 1;
}
pre = i;
pos[i][j][k] = id;
}
}
}
}
for (i = 1; i <= n; i++)
{
printf("#%d\n", i);
for (j = 1; j <= num[i]; j++)
{
int k = 0;
for (k = 1; k <= 10; k++)
{
if (k != 10)
{
printf("%d ", pos[i][j][k]);
}
else
{
printf("%d\n", pos[i][j][k]);
}
}
}
}
return 0;
}
L1-050 倒数第N个字符串
#include <stdio.h>
#include <math.h>
int main()
{
int l,n,m;
scanf("%d %d",&l,&n);
char a[l];
m=pow(26,l)-n;
for(int i=0;i<l;i++)
{
a[i]=97+m%26;
m/=26;
}
for(int i=l-1;i>=0;i--)
{
printf("%c",a[i]);
}
return 0;
}
蓝桥杯 分糖果
#include <stdio.h>
#include <stdlib.h>
int main()
{
int n, x;
scanf("%d %d\n", &n, &x);
char s[n];
int w = 0;
while (w < n)
{
scanf("%c", &s[w]);
w++;
}
int compare(const void *e1, const void *e2)
{
char *p1 = (char *)e1;
char *p2 = (char *)e2;
if (*p1 > *p2)
{
return 1;
}
else if (*p1 == *p2)
{
return 0;
}
else if (*p1 < *p2)
{
return -1;
}
}
qsort(s, n, 1, compare);
if (s[0] == s[n - 1])
{
for (int m = 0; m < n / x + (n % x ? 1 : 0); m++)
{
printf("%c", s[m]);
}
}
else if (s[0] == s[x - 1])
{
for (int m = x - 1; m < n; m++)
{
printf("%c", s[m]);
}
}
else
{
printf("%c", s[x - 1]);
}
return 0;
}