2022.12.31

韩信点兵习题

题目

相传韩信才智过人,从不直接清点自己军队的人数,只要让士兵先后以三人一排、五人一排、七人一排地变换队形,而他每次只掠一眼队伍的排尾就知道总人数了。输入3个非负整数a,b,c ,表示每种队形排尾的人数(a<3,b<5,c<7),输出总人数的最小值(或报告无解)。已知总人数不小于10,不超过100 。

上代码

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int a,b,c,j;
    cin>>a>>b>>c;
    for(int i=10;i<=100;i++)
    {
        if((i-a)%3==0&&(i-b)%5==0&&(i-c)%7==0)
        {
            cout<<i;
            j=1;    
        }
    }
    if(j!=1)
    cout<<"无解";
    return 0;
}

借由j的真假来输出是否有解

pass


输出倒三角问题

题目

输入正整数n,输出一个n层的倒三角形

上代码

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int n;
    cin>>n;
	for(int i = 1;i <= n;i++)//第一个for循环为行,在这一行里进行*和空格的输出
	{
		for(int k=0;k<i-1;k++)//第一个内层for控制*前空格的个数,保证输出图形的对称性
		{
			cout<<" ";
		}
		for(int j = 1;j<=2*(n-i)+1;j++)//第二个内层for控制该行*的个数
		{
			cout<<"*";	
		}
		cout<<"\n";
	}
    return 0;
}

易知:输入n后,第一行有2(n-1)+1个*,第二行有2(n-2)+1个*,第三行有2(n-3)+1个*,以此类推

本题重点在于嵌套for循环,需加强理解


知识点

1.语句“a[n++] = x”,它做了两件事:首先赋值a[n] =x,然后执行n++自增 ,可将其改写为a[n] = x;n = n+1;

2.默认情况下,for语句的循环体只有一条语句。即在没有{}的情况下,for只把for的下一行作为循环体。

3.比较大的数组应该尽量声明在main函数外,否则程序可能无法运行。

4.c语言中,数组不能够进行赋值操作,如声明int arr1[5],arr2[5];是不能赋值a = b的。如果要从数组a复制k个元素到数组b,可以这样:memcpy(b,a,sizeof(int) * k)。浮点数就把int改成double。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值