本人第一次写博客,c语言的学习也刚刚起步,在课上有这样一道题,我觉得颇有感悟,就试试博客怎么写,欢迎大佬指正;
这是题目:
#include <iostream>
#include<string.h>
using namespace std;
int main()
{
char n[100+5];
while(cin>>n)
{
int numble=0;/*numble要定义在循环里面,是想要达成一个每次新的大循环开始的时候numble都是0的
作用,要不达成不了题意(其实说实话我不是很理解这里这个定义放在char的后面也
一样能输出正确,有知道的佬可以解答一下)*/
for(int abc=100;abc<1000;abc++)
{
for(int de=10;de<100;de++)
{
int line1=abc*(de%10);//这里是为了求出我们平时的竖式的写法中的第一行手算出的结果,
// 这一层结果也要考虑,下面也是
int line2=abc*(de/10);
int result=abc*de;//计算最终结果
char str[50];//定义一个数组用来存放所有在竖式中出现的数字,以便与之后的检验
sprintf(str,"%d%d%d%d%d",abc,de,line1,line2,result);//拼接
bool isOK=true;//定义一个布尔型变量用来判断数字在不在所规定的几个数字里
for(int i=0;i<strlen(str);i++)//遍历数组内容
{
if(strchr(n,str[i])==NULL)
{
isOK=false;//只要找到一个不在规定数字内的数字就跳出循环,此路不通
break;
}
}
if(isOK)numble++;
}
}
cout<<numble<<endl; //最后如果全都符合就数量加一
}
return 0;
}
这个题比较好的一点是它把所需要检验的五个出现在竖式中的数字拼在了一起,组成一个数组,大大提高了检验的便利性;
关于字符查找函数的用法,我也是第一次用从网上找到了用法:
大概想要分享的就是这些,第一次写博客,欢迎指导。