harumakigohan686

今日破防


P100  输出倒三角形图案

#include  <stdio.h>
#define   MAX_LEN  10
#define   N         150
#include<string.h>
#include<stdlib.h>
#include <stdio.h>
int main()
{
	int n, i, j;
	scanf("%d", &n);	/*从键盘读取需要打印的行数*/
	for (i = 1; i <= n; i++)	/*一共打印n行*/
	{
		for (j = 1; j < i; j++)	/*第i行打印‘*’号之前需要先输出(i-1)个空格*/
		{
			printf(" ");
		}
		for (j = 1; j <= 2*(n-i) + 1; j++)	/*第i行一共输出 2*(n-i)+1个‘*’号*/
		{
			printf("*");
		}
		printf("\n");	/*第i行输出完毕,准备下一行的输出*/
	}
	return 0;
}
本质上仍然是一个大循环包两个小循环,一个管空格,一个管星星。

CP1043. 杨辉三角第n行的偶数个数

俺的做法:

首先,我先编了了个杨辉三角打印代码看看

#include <stdio.h>
#define MAX_LEN 10
#define N 150
#include<string.h>
#include<stdlib.h>
int main()
{
int i, j, n = 0;
//首先定义二维数组计数符号i,j 还有杨辉三角行数的初始化
int a[100][100] = { 0 };
//二维数组大小可自定,但切记不可使其超过整形数组的大小
while (n < 1 || n >100)
//在输入的值不正确时自动初始化问题,重新输入
{
printf("请输入要打印的杨辉三角行数>:");
scanf("%d", &n);
}
for (i = 0; i < n; i++)
a[i][0] = 1;
//每一行第一个为1,用第一个for循环的输入
for (i = 1; i < n; i++)//第一层循环i决定第几行
for (j = 1; j <= i; j++)//第二层循环借用i限制每行字符数目
a[i][j] = a[i - 1][j - 1] + a[i - 1][j];
for (i = 0; i < n; i++)//一个for循环逐行打印叫a的二维数组
{
for (j = 0; j <= i; j++)
printf("%5d", a[i][j]);
printf("\n");
}
return 0;
}

接着就是狠狠的解:

#include  <stdio.h>
#define   MAX_LEN  10
#define   N         150
#include<string.h>
#include<stdlib.h>
int main()
{
    int i, j, n = 0;
    int count=0;
    int a[100][100] = { 0 };
    while (n < 1 || n >100)
    {
        scanf("%d", &n);
    }
    for (i = 0; i < n+1; i++)
        a[i][0] = 1;
    for (i = 1; i < n+1; i++)
        for (j = 1; j <= i; j++)
            a[i][j] = a[i - 1][j - 1] + a[i - 1][j];
    for (j = 1; j <= i; j++)
    {
        if(a[i-1][j-1]%2==0)//这里有点小偷懒
        {
            count++;
        }
    }
    printf("%d\n",count);
    return 0;
}

 

posted on 2023-01-03 22:41  harumakigohan  阅读(28)  评论(0)    收藏  举报