目次
優先キューの使用
次のプログラムで使用されるメソッドは次のとおりです
ホームページ バックエンド開発 C++ C++ で実装された、指定された演算を使用して配列を整数に縮小します。

C++ で実装された、指定された演算を使用して配列を整数に縮小します。

Sep 05, 2023 am 09:25 AM
配列 整数 操作する

C++ で実装された、指定された演算を使用して配列を整数に縮小します。

整数変数 Number を入力として指定します。 1 から Number までの範囲の要素を含む配列を考えてみましょう。要素の順序は任意です。配列に対して Number-1 の演算を実行すると、演算は次のようになります。

  • #配列から 2 つの要素 A と B を選択します

  • from 配列から A と B を削除します。

  • A と B の 2 乗の合計を配列に追加します。

最終的には次のようになります。単一の整数値。目標は、その要素の可能な最大値を見つけることです。

優先キューの使用

  • 最終結果を最大化するには、A と B を選択してできるだけ大きくする必要があります。

  • 最大の A と B を見つけるために、優先キューを使用して要素値を格納します。

  • プライオリティ キューは要素を降順に格納します。

  • 最上位の要素が最大の値を持ち、以下同様となります。したがって、両方の要素をポップした後、それらの四角形を再度キューにプッシュします。

  • Number-1 を何度もポップして押して、望ましい結果を取得します。

入力 -数値=2

出力 -配列の後の単一要素は削減されます:5

説明 - 優先キューに挿入した後、配列内の要素が [1 2]

であると仮定します: 2 1

A=5、B =4 : A2 B2=1 4=5

最後の要素: 5

入力 -Number=5

出力 - 配列削減後の単一要素: 5

説明 - 配列内の要素が [5 であると仮定します。 1 2 4 3]

優先キューに挿入後: 5 4 3 2 1

A=5, B=4 : A2 B2=25 16=41 : 41 3 2 1

A=41、B=3 : A2 B2=1681 9=1690 : 1690 2 1

A=1690、B=2 : A2 B2=1681 4=2856104 : 2856104 1

A=2856104、B=1 : A2 B 2=1187163712 1=1187163713 : 1187163713

最後の要素: 1187163713

次のプログラムで使用されるメソッドは次のとおりです

この方法では優先順位を付けます。 キューは配列の要素を降順に格納するように設定されています。最大の 2 つの要素をポップし、値が 1 つだけ残るまでそれらの二乗和をキューに戻します。

  • #入力変数 Number を取得します。

  • 結果のデータ型をlong long integerに設定します - lli

  • 関数reduceArray(int Num)は入力数値を受け取り、戻り値を返します。上記の操作によって計算された最大の単一整数を使用します。

  • 優先キュー pQueue を使用します。

  • while ループを使用して、1 から N までの数値を pQueue に入力します。

  • When i
  • これで、pQueue は整数 1 から N を降順でサイズ N で格納します。

  • while ループを使用して、サイズが 1 以上になるまで pQueue を走査します。

  • var1=pQueue.top() に最大値を設定してポップします。

  • 次の最大値を var2=pQueue.top() に設定してポップします。

  • var1 をその正方形に設定し、var2 をその正方形に設定します。

  • var1 var2 を pQueue に再度プッシュします。

  • while ループの最後で、先頭の要素を返します。

  • main 関数で結果を出力します。

#include <bits/stdc++.h>
using namespace std;
#define lli long long int
int reduceArray(int Num){
   priority_queue<lli> pQueue;
   int i=1;
   while(i<=Num){
      pQueue.push(i);
      i=i+1;
   }
   while (pQueue.size() > 1) {
      lli var1 = pQueue.top();
      pQueue.pop();
      lli var2 = pQueue.top();
      pQueue.pop();
      var1=var1*var1;
      var2=var2*var2;
      pQueue.push(var1+var2);
   }
   return pQueue.top();
}
int main(){
   int Number = 5;
   cout<<"Single element after array reduction: "<<reduceArray(Number);
   return 0;
}
ログイン後にコピー

出力

上記のコードを実行すると、次の出力が生成されます

Single element after array reduction: 1187163713
ログイン後にコピー

以上がC++ で実装された、指定された演算を使用して配列を整数に縮小します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

foreach ループを使用して PHP 配列から重複要素を削除するにはどうすればよいですか? foreach ループを使用して PHP 配列から重複要素を削除するにはどうすればよいですか? Apr 27, 2024 am 11:33 AM

foreach ループを使用して PHP 配列から重複要素を削除する方法は次のとおりです。配列を走査し、要素がすでに存在し、現在の位置が最初に出現しない場合は、要素を削除します。たとえば、データベース クエリの結果に重複レコードがある場合、このメソッドを使用してそれらを削除し、重複レコードのない結果を取得できます。

PHP 配列ディープ コピーの技術: さまざまな方法を使用して完璧なコピーを実現する PHP 配列ディープ コピーの技術: さまざまな方法を使用して完璧なコピーを実現する May 01, 2024 pm 12:30 PM

PHP で配列をディープ コピーする方法には、json_decode と json_encode を使用した JSON エンコードとデコードが含まれます。 array_map と clone を使用して、キーと値のディープ コピーを作成します。シリアル化と逆シリアル化には、serialize と unserialize を使用します。

PHP 配列キー値の反転: さまざまな方法のパフォーマンス比較分析 PHP 配列キー値の反転: さまざまな方法のパフォーマンス比較分析 May 03, 2024 pm 09:03 PM

PHP の配列キー値の反転メソッドのパフォーマンスを比較すると、array_flip() 関数は、大規模な配列 (100 万要素以上) では for ループよりもパフォーマンスが良く、所要時間が短いことがわかります。キー値を手動で反転する for ループ方式は、比較的長い時間がかかります。

PHP 配列の多次元ソートの実践: 単純なシナリオから複雑なシナリオまで PHP 配列の多次元ソートの実践: 単純なシナリオから複雑なシナリオまで Apr 29, 2024 pm 09:12 PM

多次元配列のソートは、単一列のソートとネストされたソートに分類できます。単一列のソートでは、array_multisort() 関数を使用して列ごとにソートできますが、ネストされたソートでは、配列を走査してソートするための再帰関数が必要です。具体的な例としては、製品名による並べ替えや、売上数量や価格による化合物の並べ替えなどがあります。

PHP 配列のディープ コピーのベスト プラクティス: 効率的な方法を発見する PHP 配列のディープ コピーのベスト プラクティス: 効率的な方法を発見する Apr 30, 2024 pm 03:42 PM

PHP で配列のディープ コピーを実行するためのベスト プラクティスは、 json_decode(json_encode($arr)) を使用して配列を JSON 文字列に変換し、それから配列に戻すことです。 unserialize(serialize($arr)) を使用して配列を文字列にシリアル化し、それを新しい配列に逆シリアル化します。 RecursiveIteratorIterator を使用して、多次元配列を再帰的に走査します。

データソートにおけるPHP配列グループ化機能の応用 データソートにおけるPHP配列グループ化機能の応用 May 04, 2024 pm 01:03 PM

PHP の array_group_by 関数は、キーまたはクロージャ関数に基づいて配列内の要素をグループ化し、キーがグループ名、値がグループに属する要素の配列である連想配列を返すことができます。

Astar ステーキングの原則、収入の解体、エアドロップ プロジェクトと戦略、および運営のナニー レベルの戦略 Astar ステーキングの原則、収入の解体、エアドロップ プロジェクトと戦略、および運営のナニー レベルの戦略 Jun 25, 2024 pm 07:09 PM

目次 Astar Dapp ステーキングの原則 ステーキング収益 潜在的なエアドロップ プロジェクトの解体: AlgemNeurolancheHealthreeAstar Degens DAOVeryLongSwap ステーキング戦略と運用 「AstarDapp ステーキング」は今年初めに V3 バージョンにアップグレードされ、ステーキング収益に多くの調整が加えられましたルール。現在、最初のステーキング サイクルが終了し、2 番目のステーキング サイクルの「投票」サブサイクルが始まったばかりです。 「追加報酬」特典を獲得するには、この重要な段階を把握する必要があります (6 月 26 日まで続く予定で、残りは 5 日未満です)。 Astarステーキング収入を詳しく説明します。

WeChat を Ele.me にバインドする方法 WeChat を Ele.me にバインドする方法 Apr 01, 2024 pm 03:46 PM

Ele.me は、さまざまな珍味を集めたソフトウェアです。オンラインで選択して注文できます。販売者は注文を受けてすぐに作成します。ユーザーはソフトウェアを通じて WeChat をバインドできます。具体的な内容を知りたい場合は、操作方法については、PHP 中国語 Web サイトを忘れずに確認してください。 WeChat を Ele.me にバインドする方法の手順: 1. まず Ele.me ソフトウェアを開き、ホームページに入った後、右下隅の [My] をクリックします; 2. 次に、My ページで、左上隅の[アカウント]; 3. 次に、携​​帯電話、WeChat、Alipay、および淘宝網をバインドできる個人情報ページに移動します. ここで、[WeChat] をクリックします; 4. 最後のクリック後、WeChat アカウントを選択しますこれは WeChat 認証ページでバインドする必要があり、[許可] をクリックするだけです。

See all articles