欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C++整數(shù)拼接技巧大揭秘

 更新時間:2024年03月16日 09:37:43   作者:清瀟沈默  
C++整數(shù)拼接技巧大揭秘,讓你的代碼更簡潔高效!你是否還在為如何優(yōu)雅地將整數(shù)拼接成字符串而煩惱?本指南將為你揭示C++中最實用、最酷炫的整數(shù)拼接技巧,助你提升編程技能,需要的朋友可以參考下

問題描述:

給定一個長度為n的數(shù)組,A1,A2,...,An你可以從中選出兩個數(shù)Ai和Aj(i≠j),然后將Ai和Aj一前一后拼成一個新的整數(shù)。例如12和345可以拼成12345或34512。注意交換Ai和Aj的順序總是被視為兩種拼法,即便Ai=Aj。請你計算有多少種拼法,滿足拼出的整數(shù)就是k的倍數(shù)。

輸入格式:

第一行包含兩個整數(shù)n和k。

第二行包括n個整數(shù)A1,A2,...,An。

輸出格式:

一個整數(shù),代表答案。

例如輸入:4 2

                 1 2 3 4

輸出:6

規(guī)定:

對于30%的評測用例,1≤n≤1000,1≤K≤20,1≤Ai≤10^4

對于所有評測用例:1≤n≤10^5,1≤K≤10^5,1≤Ai≤10^9

分析:

拼接兩個整數(shù)(如12和345),得到12×1000+345=12345或345*100+12=34512。因此可以得到一個數(shù)學等式:拼起來的值為Ai×10^len(Aj)+Aj。

固本題要求滿足以下等式的Ai和Aj組合:(Ai×10^len(Aj)+Aj)%K=0-->((Ai×10^len(Aj))%K+Aj%K)%K=0

該式中,將計算拆分成兩部分:Q=(Ai×10^len(Aj))%K和P=Aj%K。

(Q+P)%K=0-->Q=(K-P)%K

Q:有兩個未知量Ai的值和Aj的長度。

P:有一個未知量Aj的值。

當確定Aj時就可以確定P,通過P的值與K的值,就可以通過Q=(K-P)%K得到Q的值。

結論:當確定Aj時,就可以確定Q和Aj的長度,此時只需要查看有多少個Ai可滿足即可。

C++程序:

#include<iostream>
#include<string>
using namespace std;
typedef long long LL;
const int N=100010;
int s[11][N];//表示某個數(shù)*10^i%k==j的數(shù)量
int n;//表示將要輸入的n個數(shù)
LL a[N];//存放n個數(shù)
int k;//表示k倍
LL res;//表示結果
int main()
{
	cin>>n>>k;
	for(int i=0;i<n;i++)
	{
		cin>>a[i];
	}
	for(int i=0;i<n;i++)
	{
		LL t=a[i]%k;
		for(int j=0;j<11;j++)
		{
			s[j][t]++;
			t=t*10%k;
		}
	}
	for(int i=0;i<n;i++)
	{
		LL t=a[i]%k;
		int len=to_string(a[i]).size();
		res+=s[len][(k-t)%k];
		LL r=t;
		while(len--)
		{	
			r=r*10%k;
		}
		if(r==(k-t)%k)
		{
			res--;
		}
	}
	cout<<res<<endl;
	return 0;
}

此題比較考腦子(較難),可以用偽C或自然語言舉幾個例子,方便弄懂! 

到此這篇關于C++整數(shù)拼接技巧大揭秘的文章就介紹到這了,更多相關C++ 整數(shù)拼接內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • C/C++語言中全局變量重復定義問題的解決方法

    C/C++語言中全局變量重復定義問題的解決方法

    這篇文章主要給大家介紹了關于C/C++語言中全局變量重復定義問題的解決方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧。
    2018-01-01
  • QT實現(xiàn)制作一個ListView列表的示例代碼

    QT實現(xiàn)制作一個ListView列表的示例代碼

    這篇文章主要為大家詳細介紹了如何使用Qt制作一個ListView,點擊ListView的Item可以用于測試OpenCV的各種效果,感興趣的小伙伴可以了解一下
    2023-02-02
  • C++實現(xiàn)動態(tài)綁定代碼分享

    C++實現(xiàn)動態(tài)綁定代碼分享

    對于C++動態(tài)綁定的理解,就是編譯器用靜態(tài)分析的方法加上虛擬函數(shù)的設計實現(xiàn)在程序運行時動態(tài)智能執(zhí)行正確虛擬函數(shù)的技術。要徹底理解動態(tài)綁定,只需要掌握兩點,一是編譯器的靜態(tài)編譯過程,二是虛擬函數(shù)的基本知識。只要有了這兩點理解,任何動態(tài)綁定的分析都是很容易的
    2015-11-11
  • C++ 中RTTI的使用方法詳解

    C++ 中RTTI的使用方法詳解

    這篇文章主要介紹了C++ 中RTTI的使用方法詳解的相關資料,希望通過本文大家能理解使用RTTI,需要的朋友可以參考下
    2017-09-09
  • C++簡明講解類型轉換的使用與作用

    C++簡明講解類型轉換的使用與作用

    類型轉換(type?cast),是高級語言的一個基本語法。它被實現(xiàn)為一個特殊的運算符,以小括號內(nèi)加上類型名來表示,接下來讓我們一起來詳細了解
    2022-04-04
  • C語言堆實現(xiàn)建堆算法和堆排序

    C語言堆實現(xiàn)建堆算法和堆排序

    本文主要介紹了C語言堆實現(xiàn)建堆算法和堆排序,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2024-09-09
  • C++標準庫bitset類型的簡單使用方法介紹

    C++標準庫bitset類型的簡單使用方法介紹

    這篇文章主要介紹了C++標準庫bitset類型的簡單使用方法,需要的朋友可以參考下
    2017-07-07
  • C語言通過二分查找實現(xiàn)猜數(shù)字游戲

    C語言通過二分查找實現(xiàn)猜數(shù)字游戲

    這篇文章主要為大家詳細介紹了在C語言中如何通過二分查找思想編寫一個簡單的猜數(shù)字游戲,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下
    2023-02-02
  • C/C++實現(xiàn)跨文件共享全局變量詳解

    C/C++實現(xiàn)跨文件共享全局變量詳解

    這篇文章主要為大家詳細介紹了C/C++如何實現(xiàn)跨文件共享全局變量,文中的示例代碼講解詳細,具有一定的借鑒價值,感興趣的小伙伴可以跟隨小編一起學習一下
    2024-01-01
  • C++實現(xiàn)LeetCode(70.爬樓梯問題)

    C++實現(xiàn)LeetCode(70.爬樓梯問題)

    這篇文章主要介紹了C++實現(xiàn)LeetCode(70.爬樓梯問題),本篇文章通過簡要的案例,講解了該項技術的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下
    2021-07-07

最新評論