18 条题解

  • 4
    @ 2023-6-9 13:30:08

    解析

    输入一个浮点数n,将这个浮点数,反着输出。

    其中,这个浮点数n整数部分有三位,且只带有一位小数,所以可以对这个浮点数n乘以10,消除小数部分,让他变成一个四位数,这样就可以用数位分离的方法,分离每一位数。

    易错点

    %运算符不能对浮点数取余

    题解

    #include <iostream>
    using namespace std;
    int main()
    {
       double x;
       int a;
       cin >> x;
       a = x * 10;
       int ge = a % 10;
       int shi = a / 10 % 10;
       int bai = a / 100 % 10;
       int qian = a / 1000;
       cout << ge << "." << shi << bai << qian;
       return 0;
    }
    
    
  • 2
    @ 2023-6-10 16:17:39

    是个人都知道字符串省力

    #include <bits/stdc++.h>
    using namespace std;
    int main()
    {
        string a;
        cin >> a;
        for (int i = a.length() - 1; i >= 0; i--)
        {
            cout << a[i];
        }
        return 0;
    }
    
  • 1
    @ 2024-5-24 20:57:16
    using namespace std;
    int main()
    {
        double m,n;
        int m1,m2,m3,m4;//m1代表10*n后的千位,m2代表10*n后的百位,m3代表10*n后的十位,m4代表10*n后的个位。
        cin>>n;
        int k=n*10;
        m1=k/1000;
        m2=(k%1000)/100;
        m3=(k%1000)%100/10;
        m4=(k%1000)%100%10;
        m=(m4*1000+m3*100+m2*10+m1*1)/1000.0;
        cout<<m;
        return 0;
    }
    
    • 1
      @ 2024-4-19 20:19:09
      #include <bits/stdc++.h>
      using namespace std;
      int main()
      {
          string a;
          cin >> a;
          for (int i = a.length() - 1; i >= 0; i--)
          {
              cout << a[i];
          }
          return 0;
      }
      
      • 1
        @ 2023-6-11 14:26:34

        题解

        思路:

        这道题看着有点难,实际有点难上只要转变一下思路就可以解决了,从py转过来的童鞋,第一个想到的就是字符串切片,对吧,但是这里是C++,我们还没学字符串呢!

        所以,我们不妨将它变成整数,然后用课堂上所学的知识获得它的每一位数(仅适用于确定几位的小数,题目是一位小数,可以用这种方法)

        偷懒简化(是的没错,今天没有简化,只有注意事项)注意!

        输入的数字化成整数后,不能直接%运算

        否则将出现错误:[Error] invalid operands of types 'double' and 'int' to binary 'operator%'

        参考die代码:

        #include <iostream>
        using namespace std;
        int main() {
            double a;
            int b;
            int ge, shi, bai, qian;
            cin >> a;
            b = a * 10;
            ge = b % 10;
            shi = b / 10 % 10;
            bai = b / 100 % 10;
            qian = b / 1000;
            cout << ge << "." << shi << bai << qian << endl;
            return 0;
        }
        
      • 0
        @ 2024-6-5 19:47:43

        题解 c++

        #include <bits/stdc++.h> //hetao4040809
        using namespace std;
        int main()
        {
           float x;
           long long a;
           cin >> x;
           a = x * 10;
           long long ge = a % 10;
           long long shi = a / 10 % 10;
           long long bai = a / 100 % 10;
           long long qian = a / 1000;
           cout << ge << "." << shi << bai << qian;
           return 0;
        }
        
        
        • 0
          @ 2024-5-24 17:10:11
          #include<iostream>
          #include<cstdio>
          #include<cmath>
          #include<iomanip>
          using namespace std;
          int main()
          {
              double a,b;
              int c;
              cin >> a;
              b = 0;
              c = (int)a;
              b += (a - c) * 10;
              b += c % 100 % 10 * 0.1;
              b += c % 100 / 10 * 0.01;
              b += c / 100 * 0.001;
              cout << b;
              return 0;
          }
          
          • 0
            @ 2024-4-14 21:41:19
            #include <iostream>
            using namespace std;
            int main()
            {
                double a, ans
                int x, y, z, s;
                cin >> a;
                a *= 10;
                x = a % 10;
                y = a / 10 % 10;
                z = a / 100 % 10;
                s = a / 1000 % 10;
                ans = x + 0.1 * y + 0.01 * z + 0.001 * s;
                cout << ans;
                return 0;
            }
            
            • 0
              @ 2024-4-6 14:24:44

              众所周知,字符串是个好东西... so 我们可以将输入的字符串倒着输出。

              #include <bits/stdc++.h>
              using namespace std;
              
              int main(){
                  string n;
                  cin>>n;
                  for(int i=n.size()-1;i>=0;i--){
                      cout<<n[i];
                  }
                  return 0;
              }
              

              溜了溜了

              • 0
                @ 2023-9-17 9:09:21

                直接楞过

                上字符串辣

                #include <iostream>
                using namespace std;
                string s;
                int main()
                {
                    cin>>s;
                    for(int i=s.length()-1;j>=0;j--)
                    {
                        cout<<s[i];
                    }
                    return 0;
                }
                

                搞定(赞呢?(白piao

                • 0
                  @ 2023-8-5 21:44:06

                  简单,用字符串翻转就行了

                  #include <iostream>
                  using namespace std;
                  int main(){
                      string s;
                      cin>>s;
                      for(int i=s.length()-1;i>=0;i--)cout<<s[i];
                      return 0;
                  }
                  
                  • 0
                    @ 2023-7-6 21:30:38

                    这个方法太简单了!😄 😄

                    #include <bits/stdc++.h>
                    using namespace std;
                    int main()
                    {
                        string a;
                        cin >> a;
                        for (int i = a.length() - 1; i >= 0; i--)
                        {
                            cout << a[i];
                        }
                        return 0;
                    }
                    
                    • 0
                      @ 2023-6-11 14:20:42
                      a = x * 10; #注释:这里小数要乘10
                         int ee = a % 10;
                         int eee = a / 10 % 10;
                         int eeee = a / 100 % 10;
                         int eeeee = a / 1000;
                         
                      
                      一看到浮点数我觉得也头疼,
                      但是有没有一种可能性叫做*10再/10
                      ,也就是先乘10,
                      把小数部分转为整数部分,
                      整体变为4位数再进行翻转。
                      
                      (顽皮的作者把几个变量玩成了e字母金字塔……)
                      #注释:这里我只留下核心,希望大家不要抄袭题解
                      
                      • 0
                        @ 2023-6-10 15:19:13
                        #include <iostream>
                        #include <string>
                        #include <algorithm>
                        
                        using namespace std;
                        
                        int main()
                        {
                            string str;
                            cin >> str;
                        
                            // 分离整数和小数部分
                            int dotPos = str.find(".");
                            string intPart = str.substr(0, dotPos);
                            string decPart = str.substr(dotPos + 1);
                        
                            // 反转整数和小数部分
                            reverse(intPart.begin(), intPart.end());
                            reverse(decPart.begin(), decPart.end());
                        
                            // 拼接成新的数字并输出
                            cout << stod(decPart + "." + intPart) << endl;
                        
                            return 0;
                        }
                        

                        程序运行原理如下:

                        1. 首先使用标准输入流 cin 读取用户输入的一个字符串 str;
                        2. 用 find 函数找到字符串中小数点所在的位置,将整数部分和小数部分分别保存到字符串 intPart 和 decPart 中;
                        3. 使用 STL 库中的 reverse 函数对整数部分和小数部分反转;
                        4. 将反转后的整数部分和小数部分拼接成新的字符串,并使用 stod 函数(从字符串到 double)将其转化为 double 类型后输出。

                        最后的最后: 这个程序是我查了资料后才写出来的 此程序的注解是ai生成的

                        • 0
                          @ 2023-6-10 13:08:52

                          其实这道题挺简单的,唯一的难点是判断输入数字的百位、十位、个位、十分位上的数字,下面是我的代码

                          #include<iostream>
                          using namespace std;
                          int main()
                          {
                              double n;
                              cin>>n;
                              int bai=n/100;
                              int shi=n/10-bai*10;
                              int ge=n-bai*100-shi*10;
                              int shifen=n*10-bai*1000-shi*100-ge*10;
                              cout<<shifen<<"."<<ge<<shi<<bai;
                              return 0;
                          }
                          
                          • 0
                            @ 2023-6-10 10:08:32

                            思路:

                            因为输入的是一位小数,所以float是完全够用的,但是输入的是小数不太好处理,所以先*10变成整数,又因为这个变量是个float类型的,所以计算的时候需要强制转格式,取出每一位的数字后倒序输出就行力(喜)

                            #include <iostream>
                            using namespace std;
                            
                            int main()
                            {
                                float num;
                                int a,b,c,d;
                                cin >> num;
                                num *= 10;
                                a = (int)num % 10;
                                b = (int)num / 10 % 10;
                                c = (int)num / 100 % 10;
                                d = (int)num / 1000;
                                cout << a << "." << b << c << d;
                                return 0;
                            }
                            
                            • 0
                              @ 2023-6-9 22:06:39
                              #include <iostream>
                              #include<cmath>
                              using namespace std;
                              int main()
                              {
                                  double a;
                                  int x,y,z,f;
                                  cin>>a;
                                  a*=10;
                                  f=int(a)%10;
                                  z=int(a)%100/10;
                                  y=int(a)%1000/100;
                                  x=int(a)/1000;
                                  cout<<f<<"."<<z<<y<<x;
                                  return 0;
                              }
                              
                              
                              
                              
                              
                              • 0
                                @ 2023-6-9 21:53:33
                                #include <iostream>
                                using namespace std;
                                int main()
                                {
                                   float a;
                                   int n;
                                   cin >> a;
                                   n=(int)(a*10);
                                   cout << n%10<<"."<<n/10%10<<n/100%10<<n/1000;   
                                   return 0;
                                }
                                
                                • 1

                                信息

                                ID
                                136
                                时间
                                1000ms
                                内存
                                256MiB
                                难度
                                6
                                标签
                                递交数
                                3173
                                已通过
                                972
                                上传者