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

48 阅读1分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 33 天,点击查看活动详情

@[TOC]

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

在这里插入图片描述

在线练习: noi.openjudge.cn/ 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 12=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;
}

作业

在这里插入图片描述

在线练习:

noi.openjudge.cn/

总结

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

开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 33 天,点击查看活动详情