Cプログラミング
 Computer >> コンピューター >  >> プログラミング >> Cプログラミング

Cで最大の奇数桁を持つNの積


数値Nが与えられた場合、最大の奇数桁の数値を生成する必要があります。奇数桁がない場合は、-1を出力します。

Nを「153」で初期化し、この数値の最大の奇数桁が5であるため、結果は153と5の積になります。つまり、153 * 5 =765であり、数値に246のような奇数桁がない場合、出力は次のようになります。 -1になります。

入力 − n =198

出力 − 1782

説明 − 198 * 9 =1782

入力 − n =15382

出力 − 76910

説明 − 15382 * 5 =76910

問題を解決するために以下で使用するアプローチは次のとおりです-

  • 入力Nを取ります。

  • すべての桁をトラバースし、奇数桁を探します

  • 最大の奇数要素を見つけます。

  • 元の数Nで最大のオフ要素を生成します。

  • -1で奇数要素の更新結果がない場合。

  • 結果を返します。

アルゴリズム

Start
In function int largestodd(int n)
   Step 1→ Declare and Initialize large as -1
   Step 2→ Loop While n > 0
      Set digit as n % 10
      If digit % 2 == 1 && digit > large then,
         Set large as digit
      Set n as n / 10
   Step 3→ Return large
In function int findproduct(int n)
   Step 1→ Declare and Initialize large set largestodd(n)
   Step 2→ If large == -1 then,
      Return -1
   Step 3→ Return (n * large)
In function int main()
   Step 1→ Initialize n as 15637
   Print the results from calling findproduct(n)
Stop

#include <stdio.h>
int largestodd(int n){
   // If all digits are even then
   // we wil return -1
   int large = -1;
   while (n > 0) {
      // checking from the last digit
      int digit = n % 10;
      // If the current digit is odd and
      // is greater than the large
      if (digit % 2 == 1 && digit > large)
         large = digit;
      n = n / 10;
   }
   // To return the maximum
   // odd digit of n
   return large;
}
int findproduct(int n){
   int large = largestodd(n);
   // If there are no odd digits in n
   if (large == -1)
      return -1;
   // Product of n with its largest odd digit
   return (n * large);
}
int main(){
   int n = 15637;
   printf("%d\n", findproduct(n));
   return 0;
}

出力

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

109459

  1. Cの奇数正方行列の中央の行と列の積

    行と列が等しく、長さが奇数であるmat [row] [column]の正方形の行列が与えられた場合、行と列の数は奇数でなければなりません。つまり、で割り切れません。 2、タスクは、そのマトリックスの中央の行と中央の列の積を見つけることです。 下の図のように- 制約 行列は正方行列でなければなりません。 列と行の長さは奇数である必要があります。 入力 mat[][] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}} 出力 Product of middle row = 120 Product of middle column = 80 説明

  2. Google は Pixel 2 で約束を果たす

    Google は、スマートフォン市場におけるある種の新参者です。 2017 年 10 月 4 日の Pixel 2 のすべての発売により、基準はさらに高くなりました。Google は、第 2 世代デバイスに対して革新的で一貫したアップグレードを行ってきました。 Google の製品管理担当バイス プレジデントである Mario Queiroz 氏は、「私たちは現状に疑問を投げかけることが重要だと考えています」と述べています。彼によると、Pixel 2 と Pixel 2 XL は、ソフトウェア、ハードウェア、AI の最高の融合です。 Google の戦略は、ハードウェアを機械学習で機能さ