打卡第三十五天

本文介绍如何使用C语言实现两个经典问题的解决方案:一是通过循环控制打印菱形字符图案;二是利用试探法解决百鸡问题,寻找购买100只鸡的最佳组合。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

I00007 打印菱形字符图案

打印菱形程序,关键是有关循环控制,只是控制逻辑多一些。对于输入的n,打印2n-1行的菱形字符图案。

程序中需要控制好总行数和每一行的字符。每一行的字符从左到右包括空格(可能是0个)、*号字符(若干个)和换行符。

程序如下:

/* 打印菱形字符图案 */
 
#include <stdio.h>
 
void delta(int n)
{
    int i, j;
    for(i=1; i<=n; i++) {
        for(j=1; j<=n-i; j++)
            printf(" ");
        for(j=1; j<=2*i-1; j++)
            printf("*");
        printf("\n");
    }
    for(i=1; i<=n-1; i++) {
        for(j=0; j<i; j++)
            printf(" ");
        for(j=0; j<2*n-1-2*i; j++)
            printf("*");
        printf("\n");
    }
}
 
int main(void)
{
    int n;
 
    scanf("%d", &n);
 
    delta(n);
 
    return 0;
}

I00008 百鸡问题

百鸡问题通常用试探法来解决,另外的方法是用求不定方程整数解的方法来解决这个问题。

试探法程序中,各种参数用宏定义来给定比较合适。如果将本程序用于求解其他问题,只需要修改这些宏定义。有了这个程序,很容易将这些宏定义值改为程序输入。

程序中分别用i,j,k表示鸡翁、鸡母和鸡鶵所卖的钱数,从0到最大的可能进行试探。

/* 百鸡问题:今有鸡翁一,值钱伍;鸡母一,值钱三;鸡鶵三,值钱一。
 * 凡百钱买鸡百只,问鸡翁、母、鶵各几何?
 * 答曰:鸡翁四,值钱二十; 鸡母十八,值钱五十四;鸡鶵七十八,值钱二十六。
 * 又答:鸡翁八,值钱四十;鸡 母十一,值钱三十三,鸡鶵八十一,值钱二十七。
 * 又答:鸡翁十二,值钱六十;鸡母四、值钱十二;鸡鶵八十 四,值钱二十八。
 */
 
#include <stdio.h>
 
#define COIN 100
#define N 100
 
#define N1 5
#define N2 3
#define N3 3
 
int main(void)
{
    int i, j, k;
 
    for(i=0; i<= COIN / N1; i++)
        for(j=0; j<= COIN / N2; j++)
            for(k=0; k<=N; k+=N3)
                if(i*N1 + j*N2 + k/N3 == COIN && i+j+k == N)
                    printf("%d, %d, %d\n", i, j, k);
 
    return 0;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值