1. 程式人生 > >演算法訓練 阿爾法乘積 C語言實現

演算法訓練 阿爾法乘積 C語言實現

問題描述
  計算一個整數的阿爾法乘積。對於一個整數x來說,它的阿爾法乘積是這樣來計算的:如果x是一個個位數,那麼它的阿爾法乘積就是它本身;否則的話,x的阿爾法乘積就等於它的各位非0的數字相乘所得到的那個整數的阿爾法乘積。例如:4018224312的阿爾法乘積等於8,它是按照以下的步驟來計算的:
  4018224312 → 4*1*8*2*2*4*3*1*2 → 3072 → 3*7*2 → 42 → 4*2 → 8
  編寫一個程式,輸入一個正整數(該整數不會超過6,000,000),輸出它的阿爾法乘積。
  輸入格式:輸入只有一行,即一個正整數。
  輸出格式:輸出相應的阿爾法乘積。
  輸入輸出樣例
樣例輸入
4018224312
樣例輸出
8

相關推薦

演算法訓練 阿爾乘積 C語言實現

問題描述   計算一個整數的阿爾法乘積。對於一個整數x來說,它的阿爾法乘積是這樣來計算的:如果x是一個個位數,那麼它的阿爾法乘積就是它本身;否則的話,x的阿爾法乘積就等於它的各位非0的數字相乘所得到的那個整數的阿爾法乘積。例如:4018224312的阿爾法乘積等於8,它是按照以下的步驟來計算的:   4018

ALGO-104演算法訓練 阿爾乘積c++)

演算法訓練 阿爾法乘積   時間限制:1.0s   記憶體限制:512.0MB      問題描述   計算一個整數的阿爾法乘積。對於一個整數x來說,它的阿爾法乘積是這樣來計算的:如果x是一個個位數,那麼它的阿爾法乘積就

演算法訓練 反置數 C語言實現

演算法訓練 反置數 題目: 問題描述   一個整數的“反置數”指的是把該整數的每一位數字的順序顛倒過來所得到的另一個整數。如果一個整數的末尾是以0結尾,那麼在它的反置數當中,這些0就被省略掉了。比如

[演算法]用兩種求質數的演算法(窮舉,篩選),C語言實現

今天考試的題目是記不得了,等題目公開了再給大家分析,今天講點經典的演算法,求質數,相信很多人還是記得當年的窮舉法了吧,就是不斷的讓每一個數除以一個小於他的數最大到sqrt(N),然後得出結果,演算法時間複雜度O(N^2),優化過的演算法O(N * sqrt(N)),經典的演算法我就不講了,初學者如果不懂的話,

遺傳算C語言實現(二)

print 比較 詳細 author 當前 cross max r+ 訪問 上一次我們使用遺傳算法求解了一個較為復雜的多元非線性函數的極值問題,也基本了解了遺傳算法的實現基本步驟。這一次,我再以經典的TSP問題為例,更加深入地說明遺傳算法中選擇、交叉、變異等核心步

遺傳算C語言實現(一):以非線性函數求極值為例

選中 algorithm 利用 mail 進化 lock gcc 最大值 -s 以前搞數學建模的時候,研究過(其實也不算是研究,只是大概了解)一些人工智能算法,比如前面已經說過的粒子群算法(PSO),還有著名的遺傳算法(GA),模擬退火算法(SA),蟻群算法(A

排序算C語言實現(上 比較類排序:插入排序、快速排序與歸並排序)

大於等於 額外 通過命令 無序 tro 需要 目錄 線性 如何選擇 總述:排序是指將元素集合按規定的順序排列。通常有兩種排序方法:升序排列和降序排列。例如,如整數集{6,8,9,5}進行升序排列,結果為{5,6,8,9},對其進行降序排列結果為{9,8,6,5}。雖然排序的

《數據結構與算分析-C語言實現》 馬蹄棋盤

efault def flag mes pan 設計 The chess 嘗試 問題描述 國際象棋的棋盤為8×8的方格棋盤。現將“馬”放在任意指定的方格中,按照“馬”走棋的規則將“馬”進行

操作系統,時間片輪轉算C語言實現Round Robin

cst 輪轉 初始 finish ont 建立 c語言 %d stat 1 #include "windows.h" 2 #include <conio.h> 3 #include <stdlib.h> 4 #include <

分組密碼演算法AES-128,192,256 C語言實現第一版

AES的C語言實現入門版  AES分組密碼演算法中明文分組位128bits,金鑰分組可以為128,192,256bits。AES也是由最基本的變換單位——“輪”多次迭代而成的。我們將 AES 中的輪變換計為 Round(State, RoundKey),State 表示訊息矩陣;Roun

雅可比(jacobi)迭代c語言實現

#include <iostream> #include <cstdio> #include <cmath> #include <cstring> #in

高斯消元,全主元素C語言實現

#include <iostream> #include <cstdio> #include <cstring> #include <cmath> using namespace std; double A[1010][1010

演算法】希爾排序C語言實現

上一篇文章我們一起學習了直接插入排序,它的原理就是把前i個長度的序列變成有序序列,然後迴圈迭代,直至整個序列都變為有序的.但是說來說去它還是一個時間複雜度為(n^2)的演算法,難道就不能再進一步把時間複雜度降低一階麼?可能有很多同學說快速排序,堆排序,我都會,這些簡單的插

資料結構排序演算法之歸併排序(c語言實現

博主身為大二萌新,第一次學習資料結構,自學到排序的時候,對於書上各種各樣的排序演算法頓覺眼花繚亂,便花了很長的時間盡力把每一個演算法都看懂,但限於水平有限,可能還是理解較淺,於是便將它們逐個地整理實現出來,以便加深理解。 歸併排序就是通過將一個具有n個key記錄的線性表,看

單鏈表頭插與尾插c語言實現(回顧)

#include<stdio.h> #include<math.h> #include<stdlib.h> typedef struct node{ int

演算法之並查集 C語言實現3

標頭檔案 UnionFind3.h #ifndef UNIONFIND3_H_INCLUDED #define UNIONFIND3_H_INCLUDED #include "stdlib.h" #include "ASSERT.h" typedef stru

直接插入排序C語言實現

插入法排序:通過資料移動,留出合適位置插入順序合適的值,而無須資料交換 步驟:從第二個元素“i”開始快取準備用於比較,並留出一個空位將空位前的元素“j”拿來與快取值比較不滿足則移動,直到向前找到頭比較的目的是要讓快取值插入後成為從開頭到插入點這個區間中的最值如果快取值向前看

梯度下降C語言實現

<span style="font-family: Arial, Helvetica, sans-serif;">int main()</span>{ //double matrix[4][3] = {{4,3,1},{6,8,1},{18,

離散數學 Warshall演算法求傳遞閉包 C語言實現

求傳遞閉包有一種有效演算法—Warshall演算法,這種演算法也便於計算機實現。  (1)置新矩陣A=M;  (2)i=1;  (3)對所有j如果A[j,i]=1,則對k=1,2,…,n,A[j,k]=A[j,k]∨A[i,k](這裡的加是布林加);  (4)i加1;(i

[演算法練習]堆排序的C語言實現

#include <stdio.h> void heap_sort(); void max_heap(); void build_heap(); int LEFT(),RIGHT();