1. 程式人生 > >統計數字問題-演算法實現(暴力統計法)

統計數字問題-演算法實現(暴力統計法)

這是一個暴力統計法對數字問題的演算法實現。

在編輯程式碼的過程中遇到了if語句在進行每個數字的分拆時遇到了1的個數缺少的問題,其最高為的1的個數缺少統計。

經過查明是因為if的使用只是基於判斷使用,而我的程式碼中要使用到的是迴圈計數。因而要使用while來實現迴圈。

下面就是演算法的實現過程:

// 暴力統計法.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include<stdio.h>

int sum[10]={0};
void count(int);

int main(int argc, char* argv[])
{
 int n;
 printf("請輸入一個頁數:");
 scanf("%d",&n);
 for(int i=1;i<=n;i++)
 {
  count(i);
 }
 for(int j=0;j<10;j++)
 {
  printf("%d的個數為%d/n",j,sum[j]);
 }
 return 0;
}

void count(int n)
{
 while(n>0) //這裡使用if(n>0)就是錯了。結果會出現1的位數少最高階層的個數個。
 {
  sum[n%10]+=1;
  n=n/10;
 }
}


/*
while和if最大的不同點是:
IF語句執行完畢後,接著執行下面的語句。
而While中的執行語句執行完畢後,還要進行繼續判斷條件是否符合迴圈條件,
根據判斷的條件,返回執行語句或繼續執行下面的程式。


while(表示式) 語句組; 計算表示式,若為真,執行語句,並重復該過程,直到為假時,執行下一條語句。
例如:while(k>0)i++;表示只要k>0,就執行i++;直到等到k<=0時,不執行i++;程式執行下面的語句。

  if屬於判斷語句,不是迴圈語句。而while是迴圈語句。
*/

相關推薦

統計數字問題-演算法實現暴力統計法

這是一個暴力統計法對數字問題的演算法實現。 在編輯程式碼的過程中遇到了if語句在進行每個數字的分拆時遇到了1的個數缺少的問題,其最高為的1的個數缺少統計。 經過查明是因為if的使用只是基於判斷使用,而我的程式碼中要使用到的是迴圈計數。因而要使用while來實現迴圈。 下面

演算法4-6:KMP字串模式匹配演算法實現 c語言

[提交] [統計] [提問] 題目描述 KMP演算法是字串模式匹配演算法中較為高效的演算法之一,其在某次子串匹配母串失敗時並未回溯母串的指標而是將子串的指標移動到相應的位置。嚴蔚敏老師的書中詳細描述了KMP演算法,同時前面的例子中也描述了子串移動位置的陣列實現的演算法。前面你已經實現

[轉]通俗理解卡爾曼濾波及其演算法實現例項解析

1.簡介(Brief Introduction)在學習卡爾曼濾波器之前,首先看看為什麼叫“卡爾曼”。跟其他著名的理論(例如傅立葉變換,泰勒級數等等)一樣,卡爾曼也是一個人的名字,而跟他們不同的是,他是個現代人!卡爾曼全名Rudolf Emil Kalman,匈牙利數學家,19

通俗理解卡爾曼濾波及其演算法實現例項解析

1.簡介(Brief Introduction)在學習卡爾曼濾波器之前,首先看看為什麼叫“卡爾曼”。跟其他著名的理論(例如傅立葉變換,泰勒級數等等)一樣,卡爾曼也是一個人的名字,而跟他們不同的是,他是個現代人!卡爾曼全名Rudolf Emil Kalman,匈牙利數學家,19

堆排序原理及演算法實現最大堆

堆排序        堆排序是利用堆的性質進行的一種選擇排序。下面先討論一下堆。 1.堆   堆實際上是一棵完全二叉樹,其任何一非葉節點滿足性質:   Key[i]<=key[2i+1]&&Key[i]<=key[2i+2]或者Key[i]>

【作業系統】銀行家演算法實現C語言

# 【作業系統】銀行家演算法實現(C語言) ##### 注意:本人編碼水平很菜。算是自己的一個總結。可能會有我還沒有發現的bug。如果有人發現後可以指出,不勝感激。 ## 1.銀行家演算法: > 我們可以把作業系統看作是銀行家,作業系統管理的資源相當於銀行家管理的資金,程序向作業系統請求分配資源相當於

文字相似性熱度統計演算法實現-整句熱度統計

1. 場景描述 軟體老王在上一節介紹到相似性熱度統計的4個需求(文字相似性熱度統計(python版)),根據需求要從不同維度進行統計: (1)分組不分句熱度統計(根據某列首先進行分組,然後再對描述類列進行相似性統計); (2)分組分句熱度統計(根據某列首先進行分組,然後對描述類列按照標點符號進行拆分,然後再對

文字相似性演算法實現-分組及分句熱度統計

1. 場景描述 軟體老王在上一節介紹到相似性熱度統計的4個需求(文字相似性熱度統計(python版)),本次介紹分組及分組分句熱度統計(需求1和需求2)。 2. 解決方案 分組熱度統計首先根據某列進行分組,然後再對這些句進行熱度統計,主要是分組處理,分句僅僅是按照標點符號做了下拆分,在程式碼說明中可以替換下就

A*演算法實現圖形化表示——C++描述

概要   A*演算法是一種啟發式尋路演算法,BFS是一種盲目的無目標的搜尋演算法,相比於BFS,A*演算法根據適應度構建優先佇列,根據適應度值可以很好的向目標點移動,具體詳情,請看搜尋相關文件,我在只是實現了在無障礙的情況下的A*演算法,有障礙的情況類似。 開發環境   visual studio 20

通俗理解卡爾曼濾波及其演算法實現帶例項解析

1.簡介(Brief Introduction) 在學習卡爾曼濾波器之前,首先看看為什麼叫“卡爾曼”。跟其他著名的理論(例如傅立葉變換,泰勒級數等等)一樣,卡爾曼也是一個人的名字,而跟他們不同的是,他是個現代人! 卡爾曼全名Rudolf Emil Kalman,匈牙利數學家,1930年出生於

第十二週專案3 - 圖遍歷演算法實現2

/*Copyright (c) 2015, 煙臺大學計算機與控制工程學院 * All rights reserved. * 檔名稱:H1.cpp * 作者:辛志勐 * 完成日期:2015年11月23日 * 版本號:VC6.0 * 問題描述:廣度優先遍歷——BFS * 輸入描述:無 * 程式輸出:圖的

第十二週專案3 - 圖遍歷演算法實現1

/*Copyright (c) 2015, 煙臺大學計算機與控制工程學院 * All rights reserved. * 檔名稱:H1.cpp * 作者:辛志勐 * 完成日期:2015年11月23日 * 版本號:VC6.0 * 問題描述:實現圖遍歷演算法,輸出圖結構的深度優先(DFS)遍歷序列

Reduce端join演算法實現 - 訂單跟商品

程式碼地址: https://gitee.com/tanghongping/hadoopMapReduce/tree/master/src/com/thp/bigdata/rjon 現在有兩張表 1.訂單表 2.商品表 訂單資料表t_order: id

JVM - HotSpot 的演算法實現HotSpot 虛擬機器如何優化演算法實現

前面文章中從理論上介紹了物件存活判定(這裡為可達性分析演算法)和垃圾收集演算法,而在HotSpot虛擬機器上實現這些演算法時,必須對演算法的執行效率有嚴格的考量,才能保證虛擬機器高效執行。 HotSpot虛擬機器在發生GC時所產生的問題以及解決這些問題的方案 問題提出一(時間): 1.

快速和改進的二維凸包演算法及其在On log h中的實現理論部分

在國外某知名網站上瀏覽資訊時發現了一篇非常好的論文,因為是英文的,自己翻譯、整理了一下,如果想看原始的可以去以下連結:https://www.codeproject.com/Articles/1210225/Fast-and-improved-D-Convex-Hull-algorithm-

DES演算法的JAVA實現ECB模式

文章目錄 一、演算法原理概述 加密過程 初始置換IP 迭代T Feistel輪函式 子祕鑰生成 逆置換IP-1 解

一階RC濾波器的演算法實現低通和高通3102

目前,專案需要處理訊號。目標訊號是特定頻率範圍內的訊號。高頻視為干擾。而一階RC濾波器容易實現。但是網上資料往往沒有詳細的推導。因此在這裡把筆記記下。本文的優勢是比較詳細,引數配置都有公式依據。 目錄 1、一階RC低通濾波器的演算法實現 1.1 演算法推導 1.2 波特圖 1.3

【機器學習】Apriori演算法——原理及程式碼實現Python版

Apriopri演算法 Apriori演算法在資料探勘中應用較為廣泛,常用來挖掘屬性與結果之間的相關程度。對於這種尋找資料內部關聯關係的做法,我們稱之為:關聯分析或者關聯規則學習。而Apriori演算法就是其中非常著名的演算法之一。關聯分析,主要是通過演算法在大規模資料集中尋找頻繁項集和關聯規則。

模擬退火演算法與C語言實現TSP問題

1簡介: 模擬退火來自冶金學的專有名詞退火。退火是將材料加熱後再經特定速率冷卻,目的是增大晶粒的體積,並且減少晶格中的缺陷。材料中的原子原來會停留在使內能有區域性最小值的位置,加熱使能量變大,原子會離開原來位置,而隨機在其他位置中移動。退火冷卻時速度較慢,使得原子有較多可能