每日刷题(二十九)
BASIC-1、闰年判断
#include<stdio.h>
void f(int n)
{
if(n % 4 == 0 && n % 100 != 0)
printf("yes\n");
else if(n % 400 == 0)
printf("yes\n");
else
printf("no\n");
}
int main()
{
int n;
scanf("%d", &n);
f(n);
return 0;
}
这题太简单,就不具体讲解了
BASIC-2、01字串*
这题看起来很简单,实质上还是有一点难度的,这里我提供两种解法
第一种方案,也是大多数人都能想到的,不难发现01字串的大小排列可以联想到二进制数,逢二进一,就是这样的本质
#include<stdio.h>
int main()
{
int a, b, c, d, e;
for(a = 0; a < 2; a++)
for(b = 0; b < 2; b++)
for(c = 0; c < 2; c++)
for(d = 0; d < 2; d++)
for(e = 0; e < 2; e++)
printf("%d%d%d%d%d\n", a, b, c, d, e);
return 0;
}
第二种方案,比较难想出来,除非你经常做题
#include<stdio.h>
int main()
{
int arr[5] = { 0 };
int k;
int n, j, i;
for(n = 0; n < 32; n++)
{
k = n;
for(i = 0; i < 5; i++)
{
if (k % 2)
arr[i] = 1;
else
arr[i] = 0;
k = k / 2;
}
for(j = 4; j >= 0; j--)
{
printf("%d", arr[j]);
}
printf("\n");
}
return 0;
}
BASIC-3、字母图形*
经过观察,可以发现,A一直处于对角线上,而其他沿着A延伸的字母都是越来越大,它们都关于A这条对角线对称,随着行数的增加,同一列的元素也会慢慢变大,说明行与列的绝对值和元素所在位置的值有关。详细C代码如下:
#include<stdio.h>
#include<math.h>
int main()
{
int n, m, i, j;
scanf("%d %d", &n, &m);
char a[n][m];
for(i = 0; i < n; i++)
{
for(j = 0; j < m; j++)
{
printf("%c", 65 + abs(j - i));
}
printf("\n");
}
return 0;
}