L1-020 帥到沒朋友---題解

我是一個大傻逼,輸出格式wa了一個小時,跪在了一個整數的前導‘0’。。。

在這裏插入圖片描述
解題思路:
1.用一個a[100000]來儲存每一個ID,將a數組初始化爲-1;
2.遍歷每一個輸入數據,如果每一個的第一個數m,不等於1,對應a數組的下標賦值爲1,說明他有朋友
3.再一次遍歷要查詢的數tmp,如果a[tmp]==-1說明他沒朋友,此時要將a[tmp]=-1,防止查詢重複的數,此過程還要用flag(初始化爲零)標記,最後flag==0,說明沒有一個人,沒朋友。

AC代碼:

#include <iostream>
#include <cstring>
using namespace std;
int a[100000];  //用一個a[100000]來儲存每一個ID
int main()
{
    memset(a,-1,sizeof(a));  //將a數組初始化爲-1
    int n;
    cin>>n;
    while (n--)
    {
        int m;
        cin>>m;
        for (int i = 0; i < m; ++i) {
            int temp;
            cin>>temp;
            if (m!=1)   // 遍歷每一個輸入數據,如果每一個的第一個數m,不等於1,對應a數組的下標賦值爲1,說明他有朋友
            {
                a[temp]=1;
            }
        }
    }
    int find,flag=0;
    cin>>find;
    while (find--)
    {
        int tmp;
        cin>>tmp;
        if (a[tmp]==-1) 
        {
            a[tmp]=1;   //再一次遍歷要查詢的數tmp,如果a[tmp]==-1說明他沒朋友,此時要將a[tmp]=-1
            flag++;      //防止查詢重複的數,此過程還要用flag(初始化爲零)標記,最後flag==0,說明沒有一個人,沒朋友   
            if (flag==1)
                printf("%05d",tmp);   // 這個就是爲了輸出前導0;
            else
                printf(" %05d",tmp);
        }
    }
    if (flag==0)
        cout<<"No one is handsome"<<endl;
    else
        cout<<endl;
    return 0;
}

c語言中的前導0的輸出;

#include <stdio.h>
int main()
{
    int a=10;
    int b=1;
    printf("%08d %08d",a,b);
    return 0;
}

// 輸出:
D:\qifei\cmake-build-debug\qifei.exe
00000010 00000001
Process finished with exit code 0

c++輸出前導零;

#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
    int a=10;
    int b=1;
    cout<<setfill('0')<<setw(8)<<a<<endl;
    cout<<setfill('0')<<setw(8)<<b<<endl;
    return 0;
}

// 輸出
D:\qifei\cmake-build-debug\qifei.exe
00000010
00000001

Process finished with exit code 0

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章