C++010-C++嵌套循环

C++010-C++嵌套循环

在这里插入图片描述

在线练习:
http://noi.openjudge.cn/
https://www.luogu.com.cn/

嵌套循环

循环可以指挥计算机重复去执行某些代码,减少程序的代码量。
循环可以让计算机去尝试所有的可能情况,找出最优的答案。

在这里插入图片描述

嵌套循环举例

题目描述 输出1的个数

题目描述
给定一个十进制的正整数n,写下从1到n的所有整数,然后输出其中出现数字1的个数
例如n=5时,写下1,2,3,4,5,包含1个1,输出为1; 当n=12时,写下1,2,3,4,5,6,7,8,9,10,11,12包含5个1,输出为5

输入
正整数 1<=n<=10000
输出
一个正整数,1的个数
样例输入
12
样例输出
5

解题思路

1.写下从1到n的整数,主循环框架为:
for(int i =1;i<=n;i++){
统计每个i中数字1的个数,累加
int s=0;
s++;
}
2.内循环统计每一个i中数字i的个数
int s=0,a=i;
while(a!=0){
if(a%10==1) s++;
a/=10;
}

#include <iostream>
//#include<bits/stdc++.h>

using namespace std;

int main()
{
  int n,sALL=0;
  cin>>n;
  for(int i =1;i<=n;i++ )
  {
      int s=0,a=i;
      while(a!=0){
        if(a%10==1)s++;
        a/=10;
      }
      sALL+=s;
  }
  cout<<sALL;
  return 0;
}

输出为:
在这里插入图片描述

题目描述 输出n行99乘法表

题目描述
输入n,打印前n行九九乘法表

输入
数字n
输出
前n行九九乘法表
样例输入
2
样例输出
11=1
1
2=2 2*2=4

思路
在这里插入图片描述

#include <iostream>
#include<cstdio>
#include<iomanip>
//#include<bits/stdc++.h>

using namespace std;

int main()
{
    int n=0;
    cin>>n;
    for(int i =1; i<=n; i++ )
    {
        for(int j=1; j<=i; j++)
        {
            //cout<<j<<"*"<<i<<"="<<setw(2)<<j*i<<" ";
            cout<<j<<"*"<<i<<"="<<j*i<<"\t";

        }
        cout<<endl;
    }

    return 0;
}

输出为:
在这里插入图片描述

题目描述 求s=1!+2!+…+10!

题目描述
求s=1!+2!+…+10!

输入

输出
无。
样例输入

样例输出
4037913

#include <iostream>
//#include<bits/stdc++.h>

using namespace std;

int main()
{
  int s=0;
  for(int i =1;i<=10;i++ )
  {
      int t = 1;

      for(int j= 1; j<=i;j++)
      {
          t *= j;
      }

      s += t;
  }
  cout<<s;
  return 0;
}

方法2:

#include <iostream>
//#include<bits/stdc++.h>

using namespace std;

int main()
{
  int s=0;
  int t = 1;
  for(int i =1;i<=10;i++ )
  {
      t *= i;
      s += t;
  }
  cout<<s;
  return 0;
}

作业

在这里插入图片描述

在线练习:

http://noi.openjudge.cn/

总结

本系列为C++学习系列,会介绍C++基础语法,基础算法与数据结构的相关内容。本文为C++循环结构的中的嵌套循环案例,包括相关案例练习。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IT从业者张某某

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值