poj 3077Rounders(模拟)
生活随笔
收集整理的這篇文章主要介紹了
poj 3077Rounders(模拟)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
轉載請注明出處:http://blog.csdn.net/u012860063?
viewmode=contents
題目鏈接:http://poj.org/problem?
id=3077
Description
For a given number, if greater than ten, round it to the nearest ten, then (if that result is greater than 100) take the result and round it to the nearest hundred, then (if that result is greater than 1000) take that number and round it to the nearest thousand, and so on ...Input
Input to this problem will begin with a line containing a single integer n indicating the number of integers to round. The next n lines each contain a single integer x (0 <= x <= 99999999).Output
For each integer in the input, display the rounded integer on its own line.?Note: Round up on fives.
Sample Input
9 15 14 4 5 99 12345678 44444445 1445 446Sample Output
20 10 4 5 100 10000000 50000000 2000 500代碼一、例如以下:
#include <iostream> #include <cstring> using namespace std; int main() {int t, n, k, count;char s[17];int i, j;while(cin >>t){while(t--){count = 0;int p = 0, l = 0;;memset(s,0,sizeof(s));cin>>s;int len = strlen(s);if(len == 1){cout<<s[0]<<endl;continue;}for(i = len-1; i > 0; i--){if(s[i]-'0'+p > 4){p = 1;count++;}else{p = 0;count++;}}if(s[0]-'0' + p > 9){cout<<10;}else{cout<<s[0]-'0'+p;}for(i = 0; i < count; i++){cout<<'0';}cout<<endl;}}return 0; }代碼二、例如以下: #include <iostream> #include <cstdlib> #include <cstring> #include <cstdio> using namespace std;int main() {int t;scanf("%d", &t);while (t--){int n, count = 0;scanf("%d", &n);double x = n;while (x >= 10){x /= 10;x = (int)(x + 0.5);count++;}n = (int)x;for (int i = 0; i < count; i++)n *= 10;printf("%d\n", n);}return 0; }
轉載于:https://www.cnblogs.com/hrhguanli/p/5192996.html
總結
以上是生活随笔為你收集整理的poj 3077Rounders(模拟)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: POJ2817 WordStack(状压
- 下一篇: Python 安装第三方库,模块和包的安