統計數字問題[演算法設計與分析]
/*
* NumberCount.cpp
* Author: MagicYun
*/
#include <cstdio>
#include <cstdlib>
#include <iostream>
using namespace std;
int number[10]={0};
int Digit(int key)
{
int ret = 0;
while(key)
{
ret++;
key /= 10;
}
return ret;
}
int main()
{
int key;
freopen("input.txt","rb",stdin);
freopen("output.txt","wb",stdout);
while(scanf("%d",&key) != EOF)
{//從最高到最低位計算
int tmp = key;
int m,i,t,k = 1;
t = Digit(tmp);
for(i = 1;i < t; i++)k *= 10;
memset(number,0,10*sizeof(int));
while(tmp)
{
m = tmp / k;
for(i = 1; i < m; i++)number[i] += k;
number[m] += tmp % k + 1;
for(i = 0; i < 10; i++)number[i] += m*((t-1)*k/10);
tmp %= k;
k /= 10;
t--;
}
for(i = 0; i < 10; i++)printf("%d ",number[i]);printf("/n");
}
return 0;
}
相關推薦
演算法設計與分析: 1-1 統計數字問題
1-1 統計數字問題 問題描述 一本書的頁碼從自然數1 開始順序編碼直到自然數n。書的頁碼按照通常的習慣編排, 每個頁碼都不含多餘的前導數字0。例如,第6 頁用數字6 表示,而不是06 或006 等。數 字計數問題要求對給定書的總頁碼n,計算出書的全
統計數字問題[演算法設計與分析]
/* * NumberCount.cpp * Author: MagicYun */ #include <cstdio>#include <cstdlib>#include <iostream> using namespace std; i
數字三角形問題(簡單動態規劃)-演算法設計與分析
const int maxn=100; int a[maxn][maxn]; int dp[maxn][maxn]; int main() { int n; cin>>n;
『嗨威說』演算法設計與分析 - PTA 數字三角形 / 最大子段和 / 編輯距離問題(第三章上機實踐報告)
本文索引目錄: 一、PTA實驗報告題1 : 數字三角形 1.1 實踐題目 1.2 問題描述 1.3 演算法描述 1.4 演算法時間及空間複雜度分析 二、PTA實驗報告題2 : 最大子段和 2.1 實踐題目 2.2 問題描述 2.
演算法設計與分析——動態規劃(一)矩陣連乘
動態規劃——Dynamic programming,可以說是本人一直沒有啃下的骨頭,這次我就得好好來學學Dynamic programming. OK,出發! 動態規劃通常是分治演算法的一種特殊情況,它一般用於最優化問題,如果這些問題能夠: 1.能夠分解為規模更小的子問題 2.遞迴的
演算法設計與分析——分治法
前言 本文重點回顧了卜老師課堂上關於分治演算法的一些常見的問題。加油吧!ヾ(◍°∇°◍)ノ゙ 分治法(Divide and Conquer) 當面對一個問題的時候,我們可能一下子找不到解決問題的方法。此時,我們可以考慮將問題規模最小化,先看看當問題規模變小以後,我們如何去解決
演算法設計與分析04-排序問題
①氣泡排序:量量比較待排序資料元素的大小,發現兩個資料元素的次序相反時進行交換,直到沒有反序的資料元素為止。時間複雜度是O(n*2)。穩定的。下面給出兩種排序演算法,我比較喜歡第二種,因為第二種才能真正解釋冒泡的原理 public class bubble1 { &n
演算法設計與分析03-十進位制轉二進位制問題
10進位制數轉2 進位制數 題目:2 進位制除了 0,1,還可以用 2 表示。例如: 1-> 1 2-> 10 or 02 3->11 4 ->100 or 020 or 012 問題:這樣一個十進位制數轉為二進位制數,就不是唯一的了。現求十進位制數 N 轉換為這種二進位制數
演算法設計與分析02-走臺階問題
走臺階問題,一次可以走1,2,3級,都 N級臺階的方法數 。 初始:f(0) = 0; f(1) =1; f(2) = 1 + 1 = 2; 遞推公式:f(n) = f(n - 1) + f(n-2) + f(n - 3) 解題思路: 因為一次可以走1,2,3級,所以在第
演算法設計與分析01-連結串列的逆置
一.最常用的方法: LNode* ReverseList(LNode* head) { if (head == NULL) return NULL; &nbs
演算法設計與分析05-最近點對演算法
1.題目描述: 設S是平面上n個點的集合,在這一節中,我們考慮在S中找到一個點對p和q的問題,使其相互距離最短。換句話說,希望在S中找到具有這樣性質的兩點p1 = (x1,y1)和p2 = (x2,y2),使它們間的距離在所有S中點對間為最小 2.解題思路 一共分為三種情況 情況1:
演算法設計與分析課程的時間空間複雜度
演算法設計與分析課程的時間空間複雜度: 總結 演算法 時間複雜度 空間複雜度 說明 Hanoi $ O(2^n) $ $ O(n) $ 遞迴使用 會場安排問題 \(O
【計算機演算法設計與分析】——SVM
一.簡介 支援向量機(support vector machines)是一種二分類模型,它的目的是尋找一個超平面來對樣本進行分割,分割的原則是間隔最大化,最終轉化為一個凸二次規劃問題來求解。由簡至繁的模型包括: (1)當訓練樣本線性可分時,通過硬間隔最大化,學習一個線性可分支援向量機;(2)當訓練樣本近似
【演算法設計與分析作業題】第十一週:20. Valid Parentheses
題目 C++ solution class Solution { public: bool isValid(string s) { stack<char> cstack; for (int i = 0; i < s.si
《演算法設計與分析》第十一週作業
《演算法設計與分析》第十一週作業 標籤(空格分隔): 課堂作業 文章目錄 《演算法設計與分析》第十一週作業 @[toc] 題目概要 思路 具體實現 心得 原始碼:
《演算法設計與分析》第十二週作業
《演算法設計與分析》第十二週作業 標籤(空格分隔): 課堂作業 文章目錄 《演算法設計與分析》第十二週作業 @[toc] 題目概要 思路 具體實現 心得 原始碼:
演算法設計與分析》第十週作業
《演算法設計與分析》第十週作業 標籤(空格分隔): 課堂作業 文章目錄 《演算法設計與分析》第十週作業 @[toc] 題目概要 思路 具體實現 心得 原始碼:
《演算法設計與分析》第九周作業
《演算法設計與分析》第九周作業 標籤(空格分隔): 課堂作業 文章目錄 《演算法設計與分析》第九周作業 @[toc] 題目概要 思路 具體實現 心得 原始碼:
《演算法設計與分析》第八週作業
《演算法設計與分析》第八週作業 標籤(空格分隔): 課堂作業 文章目錄 《演算法設計與分析》第八週作業 @[toc] 題目概要 思路 具體實現 心得 原始碼:
《演算法設計與分析》第七週作業
《演算法設計與分析》第七週作業 標籤(空格分隔): 課堂作業 文章目錄 《演算法設計與分析》第七週作業 @[toc] 題目概要 思路 具體實現 心得 原始碼: