5 条题解

  • 6
    @ 2022-8-17 16:07:29
    #include<bits/stdc++.h>
    using namespace std;
    int main()
    {
        string s;
        cin >> s;
        long long sum = 0;
        for (int i = 0;i < s.length();i++)
        {
            if (s[i] != '0')
            {
                if (s[i] >= '1' && s[i] <= '9')
                {
                    sum += (s[i] - '0') * pow(16, s.length() - i - 1);
                }
                else if (s[i] == 'A')
                {
                    sum += 10 * pow(16, s.length() - i - 1);
                }
                else if (s[i] == 'B')
                {
                    sum += 11 * pow(16, s.length() - i - 1);
                }
                else if (s[i] == 'C')
                {
                    sum += 12 * pow(16, s.length() - i - 1);
                }
                else if (s[i] == 'D')
                {
                    sum += 13 * pow(16, s.length() - i - 1);
                }
                else if (s[i] == 'E')
                {
                    sum += 14 * pow(16, s.length() - i - 1);
                }
                else if (s[i] == 'F')
                {
                    sum += 15 * pow(16, s.length() - i - 1);
                }
            }
        }
        cout << sum;
        return 0;
    }
    
    • 3
      @ 2023-8-15 23:03:36
      #include<iostream>
      #include<cmath>
      using namespace std;
      string n;
      long long a=0;
      int main(){
      	cin>>n;
      	for(int i=n.length()-1,j=0;i>=0;i--,j++){
      		int t;
      		switch(n[i]){
      			case 'A':t=10;break;
      			case 'B':t=11;break;
      			case 'C':t=12;break;
      			case 'D':t=13;break;
      			case 'E':t=14;break;
      			case 'F':t=15;break;
      			default:t=n[i]-'0';
      		}
      		a+=t*pow(16,j);
      	}
      	cout<<a<<endl;
      	return 0;
      }
      
      思路和MOD的一样,但是可能更简洁吧
      已AC
      
      • 3
        @ 2023-7-22 9:38:13
        #include <bits/stdc++.h>
        using namespace std;
        int getnum(char c){
            if(c>='0'&&c<='9')return c-'0';
            else{
                switch(c){
                    case 'A':return 10;
                    case 'B':return 11;
                    case 'C':return 12;
                    case 'D':return 13;
                    case 'E':return 14;
                    case 'F':return 15;
                }
            }
        }
        int main(){
            long long ans=0;
            string s;
            cin>>s;
            for(int i=0;i<s.length();i++)ans+=pow(16,s.length()-i-1)*getnum(s[i]);
            cout<<ans<<endl;
            return 0;
        }
        
        • 2
          @ 2023-3-2 21:38:59
          #include<bits/stdc++.h>
          using namespace std;
          int main()
          {
              string s;
              cin >> s;
              long long sum = 0;
              for (int i = 0;i < s.length();i++)
              {
                  if (s[i] != '0')
                  {
                      if (s[i] >= '1' && s[i] <= '9')
                      {
                          sum += (s[i] - '0') * pow(16, s.length() - i - 1);
                      }
                      else if (s[i] == 'A')
                      {
                          sum += 10 * pow(16, s.length() - i - 1);
                      }
                      else if (s[i] == 'B')
                      {
                          sum += 11 * pow(16, s.length() - i - 1);
                      }
                      else if (s[i] == 'C')
                      {
                          sum += 12 * pow(16, s.length() - i - 1);
                      }
                      else if (s[i] == 'D')
                      {
                          sum += 13 * pow(16, s.length() - i - 1);
                      }
                      else if (s[i] == 'E')
                      {
                          sum += 14 * pow(16, s.length() - i - 1);
                      }
                      else if (s[i] == 'F')
                      {
                          sum += 15 * pow(16, s.length() - i - 1);
                      }
                  }
              }
              cout << sum;
              return 0;
          }
          
          • 2
            @ 2022-8-17 15:19:42
            #include<iostream>
            #include<cmath>
            #include<cstring>
            using namespace std;
            int main(void)
            {
                int n;
                int temp;
                char* arr = new char[9];
                cin >> arr;
                n = strlen(arr);
                long long sum = 0;
                for (int i = 0; arr[i]!='\0'; i++)
                {
                    switch (arr[i])
                    {
                    case 'A': temp = 10; break;
                    case 'B': temp = 11; break;
                    case 'C': temp = 12; break;
                    case 'D': temp = 13; break;
                    case 'E': temp = 14; break;
                    case 'F': temp = 15; break;
                    default: temp = arr[i] - '0'; break;
                    }
                    sum = sum + temp * pow(16, n - 1- i);
                }
                cout << sum;
                return 0;
            }
            
          • 1

          【入门】十六进制转十进制

          信息

          ID
          289
          时间
          1000ms
          内存
          16MiB
          难度
          2
          标签
          递交数
          334
          已通过
          195
          上传者