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
解题思路
代码语言:javascript复制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==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==1)s ;
a/=10;
}
sALL =s;
}
cout<<sALL;
return 0;
}
输出为:
题目描述 输出n行99乘法表
题目描述 输入n,打印前n行九九乘法表
输入 数字n 输出 前n行九九乘法表 样例输入 2 样例输出 11=1 12=2 2*2=4
思路
代码语言:javascript复制#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
代码语言:javascript复制#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:
代码语言:javascript复制#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 循环结构的中的嵌套循环案例,包括相关案例练习。