理论第十课——for循环

目录

什么是for循环?

实战!

结语!

什么是for循环?

for循环是编程语言中一种开界的循环语句,而循环语句由循环体及循环的终止条件两部分组成,for循环其在各种编程语言中的实现与表达有所出入,但基本为以C和C++语言代表的两种形式。

实战!

打印栅栏:

给定两个整数n与k,打印出形如
+------+------+------+------+------+
的栅栏图案,这根栅栏被分割成了n段,其中每两个 "+" 间隔k个"-"字符。

输入格式:

两个整数表示n与k。
输出格式:

表示符合要求的栅栏图案。
限制:

1<=n<=15;
1<=k<=15。
样例 1 :

输入:
4 5
输出:
+-----+-----+-----+-----+

答案:

#include<bits/stdc++.h>
using namespace std;
int main()
{
	int n,k; cin>>n>>k;
	for(int i=1;i<=n;i++){
		cout<<"+";
		for(int j=1;j<=k;j++){
			cout<<"-";
		}
	}
	cout<<"+";
	return  0;
}

巧妙的数:

如果一个十进制正整数能够被它的每一个非零数码整除,则称它为巧妙的数,譬如 123需要分别用123除以1,除以2,除以3;其中不能被2整除,所以123不是一个巧妙的数。102 是一个巧妙的数,因为 102 能被 1 与 2 整除。而 2021 不是,因为它不能被 2 整除。给定一个正整数 n,请判定它是否为巧妙的数。

输入格式:

单个整数,表示n。
输出格式:

如果n是一个巧妙的数,输出clever;
否则,输出not clever。
限制:

对于100%的数据,1<=n<=10^12。
样例 1 :

输入:
102
输出:
clever
样例 2 :

输入:
13
输出:
not clever

答案:

#include<bits/stdc++.h>
using namespace std;
long long n,len[110],a,ans,b;
int main()
{
	cin>>n;
    int t; long long a=n;
    while(n>0)
    {
        t=n%10;
        if(t!=0 and a%t!=0)
        {
            cout<<"not clever"<<endl;
            return 0;
        }
        n/=10;
    }
    cout<<"clever";
	return 0;
}

单词分类:

小明为了学好英语决定苦背单词,但很快他发现要直接记住杂乱无章的单词非常困难,他决定对单词进行分类。
两个单词可以分为一类当且仅当组成这两个单词的各个字母的数量均相等。
例如“AABAC”,它和“CBAAA”就可以归为一类,而和“AAABB”就不是一类。
现在小明有N个单词,所有单词均由大写字母组成,每个单词的长度不超过100。你要告诉小明这些单词会被分成几类。

输入格式:

输入文件的第一行维单词个数N,以下N行每行为一个单词。
输出格式:

输出文件仅包含一个数,表示这N个单词分成的类数
限制:

对于100%的数据满足N<=10000。
样例 1 :

输入:
3
AABAC
CBAAA
AAABB
输出:
2

答案:

#include <bits/stdc++.h>
using namespace std;
int main()
{
	int n,flag,ans=0;
	cin>>n;
	string s[10005];
	int book[10005][27]={0};
	for(int i=1;i<=n;i++)
	{
		cin>>s[i];
		for(int j=0;j<s[i].size();j++)
		{
			int t=s[i][j]-'A'+1;
			book[i][t]++;
		}
		flag=0;
		for(int j=1;j<i;j++)
		{
			for(int k=1;k<=26;k++)
			{
				if(book[i][k]!=book[j][k])
				{
					flag++;
					break;
				}
			}
		}
		if(flag==i-1) ans++;
	}
	cout<<ans;																																																																											                                                                                                                                                                                                                                                                                                                                                                                                                                         
    return 0;
}

约数个数:

给定一个数,将其约数从小到大输出出来即可。一个数x的约数是指:有一个数y,如果x除以y的余数为0,则称y是x的约数(y<=x)。例如,2和5都是10的约数。注意数据范围。

输入格式:

一行,一个数n
输出格式:

一行。从小到大输出n的所有约数,每个数之间都以空格隔开
限制:

2<=n<=2147483647
样例 1 :

输入:
10
输出:
1 2 5 10

答案:

#include<bits/stdc++.h>
using namespace std;
int main()
{
	long long n,cnt=0,q[10005];
	cin>>n;
	for(long long i=1;i<=sqrt(n);i++)
	{
		if(n%i==0)
		{
			cnt++; q[cnt]=i;
			if(n/i==i) continue;
			cnt++; q[cnt]=n/i;
		}
	}
	sort(q+1,q+1+cnt);
	for(long long i=1;i<=cnt;i++)
		cout<<q[i]<<" ";
	return 0;
}

结语!

for循环是每个人学习C++的开始,我们要温故而知新,不能有了while,就忘了for,那我们下期再见,goodbye···

  • 24
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 20
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值