L1-6 检查密码 (C/C++)

本题要求你帮助某网站的用户注册模块写一个密码合法性检查的小功能。该网站要求用户设置的密码必须由不少于6个字符组成,并且只能有英文字母、数字和小数点 .,还必须既有字母也有数字。

输入格式:
输入第一行给出一个正整数 N(≤ 100),随后 N 行,每行给出一个用户设置的密码,为不超过 80 个字符的非空字符串,以回车结束。
注意: 题目保证不存在只有小数点的输入。

输出格式:
对每个用户的密码,在一行中输出系统反馈信息,分以下5种:

如果密码合法,输出Your password is wan mei.
如果密码太短,不论合法与否,都输出Your password is tai duan le.
如果密码长度合法,但存在不合法字符,则输出Your password is tai luan le.
如果密码长度合法,但只有字母没有数字,则输出Your password needs shu zi.
如果密码长度合法,但只有数字没有字母,则输出Your password needs zi mu.
输入样例:

5
123s
zheshi.wodepw
1234.5678
WanMei23333
pass*word.6

输出样例:

Your password is tai duan le.
Your password needs shu zi.
Your password needs zi mu.
Your password is wan mei.
Your password is tai luan le.

测试点2就是输入含有空格的情况。

#include<bits/stdc++.h>
#define llu unsigned long long 
using namespace std;

bool falses(string x){//看是否有不合法字符
	bool flag=1;
	for(int i=0;i<x.size();i++)
	{
		if((x[i]>='A'&&x[i]<='z')||(x[i]>='0'&&x[i]<='9')||(x[i]=='.'))continue;
		else{
			flag=0;
			break;
		}
	}
	if(flag)return 0;
	else return 1;
}

bool no_num(string x){//是否缺少数字
	bool flag=0;
	for(int i=0;i<x.size();i++)
	{
		if((x[i]>='0'&&x[i]<='9'))
		{
			flag=1;
			break;
		}
	}
	if(!flag)return 1;
	else return 0;
}

bool no_az(string x){//是否缺少字母
	bool flag=0;
	for(int i=0;i<x.size();i++)
	{
		if((x[i]>='A'&&x[i]<='z'))
		{
			flag=1;
			break;
		}
	}
	if(!flag)return 1;
	else return 0;
}


int main()
{
	int n;
	cin >> n;
	for(int i=0;i<n;i++)
	{
		string x;
		getchar();
		getline(cin,x);
		if(x.size()<6)cout << "Your password is tai duan le." << endl ;
		else if(falses(x))cout << "Your password is tai luan le." << endl ;
		else if(no_num(x))cout << "Your password needs shu zi." << endl ;
		else if(no_az(x))cout << "Your password needs zi mu." << endl ;
		else cout << "Your password is wan mei." << endl ;
	}
	return 0;
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这段代码的数学表达式为: dy(2) = (2b1y(1) + 4b2(y(1))^2 + 8b3(y(1))^3 + Fsin(60πt) + kkk(-K⋅A1/(L1-e1-y(1)))(y(1)>e2)⋅y(1) - K⋅A1/(L1-e1-y(1))(e2>=y(1)&y(1)>=0)⋅y(1) + K⋅A2/(L2-e2+y(1))(e2>=y(1)&y(1)>=0)⋅y(1) + K⋅A1/(L1-e1-y(1))(0>y(1)&y(1)>=-e1)⋅y(1) - K⋅A2/(L2-e2+y(1))(0>y(1)&y(1)>=-e1)⋅y(1) - K⋅A2/(L2-e2+y(1))(-e1>y(1))⋅y(1) - c1y(2))/m1 其中,dy(2)表示物体速度的变化率,y(1)表示物体的位置,b1、b2、b3、F、kkk、K、A1、A2、L1、L2、e1、e2、c1、m1、t为常数或变量。 各项含义如下: - 2b1y(1)表示物体受到的阻力,阻力系数为2b1; - 4b2(y(1))^2表示物体受到的摩擦力,摩擦系数为4b2; - 8b3(y(1))^3表示物体受到的滑动摩擦力,滑动摩擦系数为8b3; - Fsin(60πt)表示物体受到的外力,外力大小为F,方向为正弦函数,频率为60π; - kkk(-K⋅A1/(L1-e1-y(1)))(y(1)>e2)⋅y(1)表示物体受到的弹性力,弹性力大小为kkk(-K⋅A1/(L1-e1-y(1))),其中K、A1、L1、e1为常数,y(1)为物体的位置,当y(1)大于e2时,弹性力为0,否则弹性力为kkk(-K⋅A1/(L1-e1-y(1)))⋅y(1); - -K⋅A1/(L1-e1-y(1))(e2>=y(1)&y(1)>=0)⋅y(1)表示物体受到的弹性力,弹性力大小为K⋅A1/(L1-e1-y(1)),其中K、A1、L1、e1为常数,y(1)为物体的位置,当y(1)大于等于e2且小于等于0时,弹性力为K⋅A1/(L1-e1-y(1)))⋅y(1),否则弹性力为0; - K⋅A2/(L2-e2+y(1))(e2>=y(1)&y(1)>=0)⋅y(1)表示物体受到的弹性力,弹性力大小为K⋅A2/(L2-e2+y(1)),其中A2、L2、e2为常数,y(1)为物体的位置,当y(1)大于等于e2且小于等于0时,弹性力为0,否则弹性力为K⋅A2/(L2-e2+y(1)))⋅y(1); - K⋅A1/(L1-e1-y(1))(0>y(1)&y(1)>=-e1)⋅y(1)表示物体受到的弹性力,弹性力大小为K⋅A1/(L1-e1-y(1)),其中K、A1、L1、e1为常数,y(1)为物体的位置,当y(1)大于-e1且小于0时,弹性力为K⋅A1/(L1-e1-y(1)))⋅y(1),否则弹性力为0; - -K⋅A2/(L2-e2+y(1))(0>y(1)&y(1)>=-e1)⋅y(1)表示物体受到的弹性力,弹性力大小为-K⋅A2/(L2-e2+y(1)),其中A2、L2、e2为常数,y(1)为物体的位置,当y(1)大于- e1且小于0时,弹性力为-K⋅A2/(L2-e2+y(1)))⋅y(1),否则弹性力为0; - -K⋅A2/(L2-e2+y(1))(-e1>y(1))⋅y(1)表示物体受到的弹性力,弹性力大小为-K⋅A2/(L2-e2+y(1)),其中A2、L2、e2为常数,y(1)为物体的位置,当y(1)小于- e1时,弹性力为-K⋅A2/(L2-e2+y(1)))⋅y(1),否则弹性力为0; - c1y(2)表示物体受到的阻尼力,阻尼系数为c1,y(2)为物体的速度; - m1为物体的质量。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值