數字反轉
題目描述
輸入一個不小于 且小于 ,同時包括小數點后一位的一個浮點數,例如 ,要求把這個數字翻轉過來,變成 并輸出。
輸入格式
一行一個浮點數
輸出格式
一行一個浮點數
輸入輸出樣例 #1
輸入 #1
123.4
輸出 #1
4.321
C
1
常用的輸入控制符有:
%d
:讀入一個 32 位有符號整數。
%u
:讀入一個 32 位無符號整數。
%lld
:讀入一個 64 位有符號整數。
%llu
:讀入一個 64 位無符號整數。
%f
:讀入一個 float 類型。
%lf
:讀入一個 double 類型。
先定義四個字符類型。
當然,如果輸入中有多余的已知字符,可以在 scanf 中用該字符占位。
例如輸入是 2021.805,使用如下代碼讀入,a
,b
的值分別為 2021,805。
scanf("%d.%d", &a, &b);
本題 AC 代碼:
#include <cstdio>
using namespace std;
char a, b, c, d;
int main(){scanf("%c%c%c.%c", &a, &b, &c, &d);printf("%c.%c%c%c", d, c, b, a);return 0;
}
2
我們注意到,本題的輸入長度固定為 5 個字符,且其中第 4 個字符為小數點。
要求反轉 abc.d
,即:輸出 d.cba
。
我們發現,把包括小數點在內的5個字符順序反轉后輸出即可。進而我們聯想到 printf 函數的一個重要特性:參數從后往前求值。 即:
printf("%u %u\n", work1(), work2())
會先執行 work2()
再執行 work1()
。
利用這一特性,我們可以得到核心代碼:
printf("%c%c%c%c%c", getchar(), getchar(), getchar(), getchar(), getchar());
C++
1
我們先來認識一下c++
的字符串string
,這個類型相當于c
中char[]
,和char一樣,string
也可以用數組表示多個字符串,即string a[]
。接下來看看常見的幾個string
類型操作:
string a;//定義一個string類字符串。
int len=a.size()//讀取串a的長度,注意此時a中字符下標是從0開始的。
有了這些,我們便可以反轉了!
#include<bits/stdc++.h>萬能頭文件
using namespace std;
string a;
signed main()
{cin>>a;int len=a.size();讀取長度for(int i=len-1;i>=0;i--)反轉cout<<a[i];return 0;
}
字符串的反轉操作我們可以用STL
也可以直接倒序輸出。
介紹一下STL
里面的反轉字符串函數 reverse()
其格式是: reverse( 數組名 .begin() , 數組名 .end() );
在此大呼一聲:STL大法好!
include<bits/stdc++.h> //文件頭
using namespace std;
string a; //定義字符串
int main()
{cin>>a; //輸入reverse(a.begin(),a.end()); //反轉cout<<a; //輸出return 0; //養成好習慣
}
3
對于數字不要求運算的處理,我們基本都可以使用 字符串 來解決。
那么講一下基本思路:
首先讀入一個字符串(為了方便使用string
)
接著,獲取其長度,即使用 str.size()
的方法,當中 str
是字符串的變量名,這個函數會返回一個值,即字符串的長度
注意,字符串的長度比起他的最大下標(index)
是要大 1 的,所以倒序輸出是要注意。同理,第一個字符的下標是 0 。
那么代碼基本架構出來了,我們看以下代碼:
#include<bits/stdc++.h>
using namespace std;
string a;
int main()
{cin>>a;for(int i=a.size()-1;i>=0;i--)cout<<a[i];return 0;
}
利用for循環,整體代碼思路比較清晰。
同時,也可以使用字符數組,即char[]
類型,但是要注意的是這種方法取得字符串長度的函數是strlen(str)
。
Python
讀取輸入:使用input()
函數讀取用戶輸入的浮點數,并將其存儲為字符串num_str
。
反轉字符串:利用Python
字符串切片的特性 [::-1]
對字符串進行反轉操作,得到反轉后的字符串reversed_str
。
輸出結果:將反轉后的字符串轉換為浮點數,并使用 print()
函數輸出。
# 讀取輸入的浮點數
num_str = input()
# 反轉字符串
reversed_str = num_str[::-1]
# 將反轉后的字符串轉換為浮點數并輸出
print(float(reversed_str))
JAVA
因為是將整體都反轉,而不是部分反轉,不涉及到0的處理,所以直接讀取為字符串,按照單個字符逆序輸出即可。
讀取字符串中的單個字符(敲黑板)
str.charAt(int);
import java.util.Scanner;
public class p5705 {public static void main(String[] args) {Scanner read = new Scanner(System.in); //實例化ScannerString s = read.next(); //讀取for(int x0 = s.length()-1;x0>=0;x0--) { //讀取字符串長度,因為是0~(n-1),所以需要-1防止越界。由最后一個到第一個(0)。System.out.print(s.charAt(x0)); //讀取單個字符,輸出}read.close(); //關閉Scanner}
}
夢想可以大,第一步總是小的!