CSDN第四届在线编程大赛2014初赛:带通配符的数

题目要求:

输入参数:参数A,含有任意个数的?的数值字符串,如:12?4,?代表一位任意数
         
   参数B,不含?的数值字符串,长度与参数A一致
输出结果:参数A比参数B大的可能数值个数

输入样例
36?1?8
236428
8?3
910
?
5

输出样例
100
0
4

[cpp] view plaincopy

  1. #define num_max_length 20

  2. int main(void)

  3. {

  4. char num1[num_max_length];

  5. char num2[num_max_length];

  6. int result_temp=0, result=0;

  7. int num_length=0, num_index=0;

  8. int flag=0;
  9. while(1){

  10. memset(num1, 0, num_max_length);

  11. memset(num2, 0, num_max_length);

  12. result_temp=0;

  13. result = 0;

  14. flag = 0;
  15. printf("参数A:");

  16. fgets(num1, num_max_length, stdin);

  17. if(memcmp(num1, "end", 3)==0) break;

  18. printf("参数B:");

  19. fgets(num2, num_max_length, stdin);

  20. if(memcmp(num2, "end", 3)==0) break;

  21. if((num_length=strlen(num1))!=strlen(num2)){

  22. printf("num1 num2 length not match\n");

  23. break;

  24. }
  25. for(num_index=0; num_index<num_length; num_index++){

  26. if(num1[num_index]==‘?‘){

  27. if(flag == 0)

  28. result_temp = (int)(‘9‘-num2[num_index])+result_temp*10;

  29. else

  30. result_temp = result_temp*10;

  31. }

  32. else{

  33. if(num1[num_index]==num2[num_index]){

  34. continue;

  35. }

  36. else if(num1[num_index]<num2[num_index]){

  37. //break;

  38. if(flag == 0){

  39. flag = 1;

  40. }

  41. }

  42. else{

  43. if(flag == 0){

  44. flag = 1;

  45. result_temp += 1;

  46. }

  47. }

  48. }

  49. }

  50. printf("参数A比参数B大有%d种可能\n", result_temp);

  51. }
  52. printf("用户终止程序\n");

  53. system("pause");
  54. return 0;

  55. }

时间: 2024-11-08 23:36:46

CSDN第四届在线编程大赛2014初赛:带通配符的数的相关文章

csdn第五届在线编程大赛-完全平方

题目详情 给定整数区间[A,B]问其中有多少个完全平方数. 输入格式: 多组数据,包含两个正整数A,B 1<=A<=B<=2000000000. 输出格式: 每组数据输出一行包含一个整数,表示闭区间[A,B]中包含的完全平方数的个数. 答题说明 输入样例 1 1 1 2 3 10 3 3 输出样例: 1 1 2 0 解答: #include<iostream> #include<cmath> using namespace std; int main() { do

csdn第五届在线编程大赛-全然平方

题目详情 给定整数区间[A,B]问当中有多少个全然平方数. 输入格式: 多组数据,包括两个正整数A,B 1<=A<=B<=2000000000. 输出格式: 每组数据输出一行包括一个整数.表示闭区间[A,B]中包括的全然平方数的个数. 答题说明 输入例子 1 1 1 2 3 10 3 3 输出例子: 1 1 2 0 解答: #include<iostream> #include<cmath> using namespace std; int main() { do

【平安科技】在线编程大赛活动

1. 活动名称:[现金大奖]平安科技在线编程大赛:一份"奇妙"的银行流水 题目详情: 一份银行流水数据,因打印模糊导致部分金额不清楚. 收入.支出.余额满足以下3条规则: 1.收入.支出.余额三列都是数字 2.同一行收入和支出的值不能同时为非零值 3.第N-1行余额(+第N行收入或-第N行支出)=第N行余额 程序语言: java 请按照规则编写算法,修复不清楚的值 输入描述: 输入数据最多25行,每行都包含四个数据,分别是:数据编号,收入.支出.余额,模糊的数据以?表示,它们之间以;隔

第五届在线编程大赛月赛第一题:完全平方数的个数

第五届在线编程大赛月赛第一题:完全平方数的个数 题目详情: 给定整数区间[A,B]问其中有多少个完全平方数. 输入格式: 多组数据,包含两个正整数A,B 1<=A<=B<=2000000000. 输出格式: 每组数据输出一行包含一个整数,表示闭区间[A,B]中包含的完全平方数的个数. 答题说明: 输入样例 1 1 1 2 3 10 3 3 输出样例: 1 1 2 0 java代码: import java.util.Scanner; public class One { public s

第四届58topcoder编程大赛

layout: post title: 第四届58topcoder编程大赛 subtitle: 58ACM catalog: true tags: - A* 算法 - C++ - 程序设计 --- 问题及背景 小明是58的一名90后程序猿,除了日常接需求写代码以外,他还特别善于思考,尤其喜欢思考和58产品业务相关的问题.随着移动互联网的发展,小明推测58将来和地理位置相关的产品服务会越来越多,比如58房产下附近的商圈.58同镇下的拼车.58速运等等都是和地理位置相关产品.和地理位置相关有一个非常

CSDN英雄会-第五届在线编程大赛月赛第三题:石子游戏(1)

题目详情 甲乙两人面对若干堆石子,其中每一堆石子的数目可以任意确定. 两人轮流按下列规则取走一些石子,游戏的规则如下: 1.每一步应取走至少一枚石子: 2.每一步只能从某一堆中取走部分或全部石子: 3.如果谁无法按规则取子,谁就是输家. 如果甲乙两人都采取最优的策略,甲先拿,请问,是甲必胜还是乙必胜. 输入格式: 多组数据,每组数据两行,第一行是一个整数N, 2<=N<=10000 下一行是N个正整数,代表每堆的石子数,石子数在32位整数内. 输出格式: 每组测试数据输出一行,如果甲存在必胜策

【题解】 第五届在线编程大赛月赛第二题:走格子

题目详情 我们有一个两行n列格子的棋盘,你可以从任何位置出发.每次你可以沿着上下左右以及对角线的方向走一格(不能出去),求有多少条可能的哈密尔顿路?(即所有的格子只经过一次的路.) 例如: a b c d e f 一条可能的路径是b,f,c,e,d,a 输入格式: 多组数据,每组数据1行,包含一个正整数n表示列数. (n <= 1000) 输出格式: 每组数据输出一行包含一个整数,可能的路径条数.结果比较大,输出对10^9 + 7的结果 答题说明 输入样例 1 2 3 输出样例: 2 24 96

英雄会题目解析- 第五届在线编程大赛月赛第三题:石子游戏

题目: 甲乙两人面对若干堆石子,其中每一堆石子的数目可以任意确定.两人轮流按下列规则取走一些石子,游戏的规则如下:1.每一步应取走至少一枚石子:2.每一步只能从某一堆中取走部分或全部石子:3.如果谁无法按规则取子,谁就是输家.如果甲乙两人都采取最优的策略,甲先拿,请问,是甲必胜还是乙必胜.输入格式:多组数据,每组数据两行,第一行是一个整数N, 2<=N<=10000下一行是N个正整数,代表每堆的石子数,石子数在32位整数内.输出格式:每组测试数据输出一行,如果甲存在必胜策略,输出"W

2014第六届华为编程大赛初赛第一轮

/*********************************************************************** 1.投票问题 输入若干候选人,以及投票,格式如下,输出(按输入候选人输入顺序)候选人以及得票,以及 无效票数. Input: addCandidate xx1 addCandidate xx2 addCandidate xx3 addCandidate xx4 addCandidate xx5 addCandidate xx6 vote xx2 vot