
 c语言中的小小白-CSDN博客c语言中的小小白关注算法,c++,c语言,贪心算法,链表,mysql,动态规划,后端,线性回归,数据结构,排序算法领域.https://blog.csdn.net/bhbcdxb123?spm=1001.2014.3001.5343

给大家分享一句我很喜欢我话:
知不足而奋进,望远山而前行!!!
铁铁们,成功的路上必然是孤独且艰难的,但是我们不可以放弃,远山就在前方,但我们能力仍然不足,所有我们更要奋进前行!!!
今天我们更新了xxxxxxx内容,
🎉 欢迎大家关注🔍点赞👍收藏⭐️留言📝
一、题目一

这张图片是前几年微博上很火的一张图片,下面我们来看一下题目:

这里便是题目的描述和要求:下面我们来看一下这道题的代码:
#include<iostream>
#include<set>
#include<cstring>;
using namespace std;
int main()
{
    char tele[20];
    cin >> tele;
    set<int, greater<int>> numbers;
    int len = strlen(tele);
    for (int i = 0; i < len; i++)
    {
        numbers.insert(tele[i] - '0');
    }
    int len2 = numbers.size();
    int arr[12];
    for (int i = 0; i < len; i++)
    {
        int count = 0;
        for (int j:numbers)
        {
            if ((tele[i] - '0') == j)
            {
                arr[i] = count;
                break;
            }
            count++;
        }
    }
    cout << "int[] arr = new int[]{";
    int a = 0;
    for (int i : numbers)
    {
        if (a != 0)cout << "," << i;
        else cout << i;
        a++;
    }
    cout << "};"<<endl;
    cout << "int[] index = new int[]{";
    for (int i = 0; i < len; i++)
    {
        if (i != 0)cout << "," << arr[i];
        else cout << arr[i];
    }
    cout << "};";
    return 0;
}二、题目二

再来看一下这道题,看似是简单的A+B,实则不然,输入的数不一定是整数,可能是字母,或者其他的什么东西,所以看一下代码吧:
#include<iostream>
#include<cstring>
int is_integer(const char* ptr)
{
    int len = strlen(ptr);
    int all = 0;
    if (len > 4)return -1;
    else {
        for (int i = 0; i < len; i++)
        {
            if (ptr[i] >= '0' && ptr[i] <= '9')
            {
                all *= 10;
                all += (ptr[i] - '0');
               
            }
            else 
            {
                return -1; 
            }
        }
    }
    if (all < 1 || all>1000)return -1;
    else return all;
}
int main()
{
    char arr[100] = { 0 };
    char str[100] = { 0 };
   std::cin >> arr;
   std::cin.ignore();
   std::cin.getline(str, 100);
    int ret1 = is_integer(arr);
    int ret2 = is_integer(str);
    if (ret1 == -1 && ret2 == -1)
    {
        std::cout << "? + ? = ?";
    }
    else if (ret1 == -1 && ret2 != -1)
    {
        std::cout << "? + " << ret2 << " = ?";
    }
    else if (ret1 != -1 && ret2 == -1)
    {
        std::cout << ret1 << " + ? = ?";
    }
    else if (ret1 != -1 && ret2 != -1)
    {
        std::cout << ret1 << " + " << ret2 << " = " << ret1 + ret2;
    }
    return 0;
}三、题目三

下面是代码:
#include<iostream>
#include<set>
using namespace std;
int main()
{    
	int n=0;    
	cin>>n;    
	set<int> no_handsome;    
	for(int i=0;i<n;i++)    
	{        
		int k=0;        
		cin>>k;        
		for(int j=0;j<k;j++)        
		{            
			int temp=0;            
			cin>>temp;            
			if(k>1)            
			{                
				no_handsome.insert(temp);            
			}           
		}    
	}    
	int m=0;    
	cin>>m;     
	set<int> handsome;    
	bool flag=true;    
	for(int i=0;i<m;i++)    
	{        
		int temp;        
		cin>>temp;        
		if(no_handsome.find(temp)==no_handsome.end())        
		{            
			if(handsome.find(temp)==handsome.end())            
			{                
				if(!flag)                
				{                    
					cout<<" ";                
				}                
				printf("%05d",temp);                
				flag=false;            
			}            
			handsome.insert(temp);        
		}    
	}    
	if(handsome.size()==0)    
	{        
		cout<<"No one is handsome";    
	}
}总结:
这三个题整体难度其实不大,但是很容易做错,所以各位好好看一下吧



















