首页 > 试题广场 >

这样的数字一共有()个。

[单选题]
阿里巴巴国际站的股票代码是1688,这个数字具有这样的特性,首先是个首位为1的4位数,其次恰巧有且仅有1个数字出现了两次。类似的数字还有:1861,1668等。这样的数字一共有()个。
  • 144
  • 180
  • 216
  • 270
  • 288
  • 432
我觉得是243啊====


我直接贴代码:
var t=0;
function ss(){
for(var i=1000;i<9999;i++){

if(i.toString().slice(3,4)!='1'&&i.toString().slice(2,3)!='1'&&i.toString().slice(1,2)=='1'&&i.toString

().slice(0,1)=='1'){
t=t+1;
}
if(i.toString().slice(3,4)!='1'&&i.toString().slice(2,3)=='1'&&i.toString().slice(1,2)!='1'&&i.toString

().slice(0,1)=='1'){
t=t+1;
}
if(i.toString().slice(3,4)=='1'&&i.toString().slice(2,3)!='1'&&i.toString().slice(1,2)!='1'&&i.toString

().slice(0,1)=='1'){
t=t+1;
}

}
return t;
}
alert(ss());

发表于 2016-06-03 16:16:18 回复(0)
分两种情况讨论:
(1)若这个四位数的重复数字为1,那么首先从三个空位中选出一个给1,第二步从剩下9个可选数字中选出2个有序的排列到剩下的两个空位中去,那么有C(1,3)*A(2,9)=3*(9!/(9-2)!)=3*9*8=216种可能;
(2)若这个四位数的重复数字不为1,那么首先从9个可选数字中选出一个作为重复数字(C(1,9)),并放到三个空位中的两个(这两个数字相同,故只涉及组合)(C(2, 3)),然后从剩下8个数字中选出一个(它的位置在重复数字确定后就自然固定了,不可选)即可,故有C(1,9)*C(2, 3)*C(1, 8)=216种可能。
总共:216+216=432
发表于 2016-06-13 10:43:17 回复(3)

1




第一个位置1是固定的,只需要考虑后三位的排列。
分两种情况分析
1.如果两个重复的数字是1,1的位置有3中情况,剩下两个数字不能是1并且不能重复,分别是9种和8种,所以这种情况下的总得可能数是3*8*9。
2.如果两个重复的数字不是1,则先选择要重复的数字是9种,剩下一个数字是8种(除了1和选择的重复的数字),三个数字全排列,其中有两个重复的数字可能性是A(3,3)/A(2,2)=3,所以这种情况下的可能性是9*8*3。
综上所述,总的数字个数是9*8*3+9*8*3=432。

发表于 2016-07-12 10:34:42 回复(0)
分两种情况  
1. 重复的是1:
则1的位置有百位十位个位三种, 每种情况下   由于1不能再选, 共9*9 = 81,去掉00到99(不包括11)9个    综上共(81-9)*3 = 216

2. 重复的非1:
则首先选定重复的数有0、1到9 9种,此时剩下的一个数有8种情况(非1非选定数),重复的位置有3种情况  共9*8*3 = 216种
综上共216+216=432种
发表于 2016-05-10 18:40:30 回复(1)
发表于 2017-04-23 14:53:59 回复(0)
共有6种可能性:
1aab,
1baa,
1aba;
11ab,
1a1b,
1ab1;
前三种为不包含1的重复数字后三种为重复1、没有其他数字重复的情况
对第一种 1aab 计算可能数量:假设a为0-9的任意数字,但a不能为1,所以a共有10-1=9种可能;假设b为0-9的任意数字,但b不能为1,同时b不能等于a。因此b有10-1-1=8种可能。综上,1aab共有:9×8个符合要求的数字。
而1baa,1aba与1aab的计算方法一模一样,因此前三种可能共有9×8×3=216个符合要求的数字。

接着计算第四种:11ab的可能数量:a可取0-9内非1的任何数字,b可取0-9内非1、且非a的任意数字。因此,11ab共有9×8个符合要求的数字。
同理,1a1b、1ab1也有9×8个符合要求的数字,所以后三种可能性共有9×8×3=216种可能性。

综上所述,所有6种情况有216+216=432种符合要求的数字。
发表于 2019-08-07 12:16:50 回复(0)
四位数为  1 x x x
    假如重复位为   1:则从后面三个空中选一个空位作为1的位置即  C(1,3),然后剩余2个空中,第一个空除1以外,可以有9种选法,最后一个空有8中选法  即 C(1,3)*C(1,9)*C(1,8)=216
   假如重复为不为 1:则从将不不重复位C(1,9),随机选取在三个空位中即C(1,3),剩下2个空选取有C(1,8)种选法,即 
            C(1,3)*C(1,9)*C(1,8) = 216'
发表于 2016-05-18 14:41:36 回复(0)
情况1:重复数字为1,则有1xy1,11xy, 1x1y三种可能,其中x取非1,y取非1非x,所以有3*9*8种可能
情况2:重复数字为非1,则有1xxy, 1xyx, 1yxx三种可能,其中x取非1,y取非1非x,依然是3*9*8
一共6*9*8=432
发表于 2019-03-13 10:20:44 回复(0)
#include<cstdio>
#include<cstdlib>
#include<cmath>
#include<iostream>
#include<algorithm>
using namespace std;
int main() {
    int i,j,cmt=0;
    for(i=1002; i<=1998; i++) {
        int a[10]= {0},cnt=0;
        j=i;
        while(j) {
            a[j%10]++;
            if(a[j%10]>=2) {
                cnt+=a[j%10]>2?-1:1;
            }
            j/=10;
        }
        if(cnt==1)
            cmt++;
    }
    cout<<cmt<<endl;
    return 0;
} 

发表于 2017-08-03 20:37:47 回复(1)
<?php                               //用代码来解决问题
$i=0;
for($a=1999;$a>1000;$a--){          //查找1000-1999符合条件的 
	$a1=strval($a);             //强制转换为字符串
	$a1=str_split($a); $a2=array_unique($a1);      //分割为数组并去重
	if(count($a2)==3){          //将去重后数组个数为三的挑出
		$i++;
	}
}
echo $i;
//php是最好的语言!23333  看代码量嘛
?>

编辑于 2017-04-22 20:09:34 回复(0)
#include<iostream>
using namespace  std;

int main()
{
	int num = 0;
	for (int i = 1000; i < 1999;i++)
	{
		int a = i / 1000;
		int b = (i %1000) / 100;
		int c = i % 1000 % 100/10;
		int d = i - 1000 - b * 100 - c * 10;
		if ((a == b&&a != c&&a != d&&c!=d) || (a == c&&a != b&&a != d&&b!=d) || (a == d&&a != b&&a != c&&b!=c) || (b == c&&b != d&&a != d&&b!=a) || (b == d&&c != a&&b != c&&b!=a) || (d == c&&b != a&&b != c&&c!=a))
		{
			num++;
		}
	}
	cout << num << endl;
	return 0;

}

发表于 2016-07-17 19:30:28 回复(1)
c(9,2)x c(2,1)x 6=432
发表于 2016-06-15 11:12:15 回复(0)
有没有更简单的可以蒙的办法
发表于 2022-09-24 13:43:30 回复(0)
1_ _ _  
 **每位数字可以选择 [0-9]
第一种:后3位中有一个数是1,其余两个数不为1且互不相同,有3*9*8=216种
第二种:后3位的数都不为1,任取两个相同数字,有9*1*8*C(3,2) = 216种
共432种。
发表于 2018-03-30 11:10:56 回复(0)
排除法做的,没有完全得出准确答案
发表于 2016-10-19 17:39:59 回复(0)
考虑有两个1的情况,首位为1,从0,2-9中选出两个数进行排列,有9*8=72种方法,把另外一个1插到这两个数的空隙,有3种方法,故此情况有9*8*3=216种。 再考虑没有1的情况,从0,2-9中选两个数,有9*8/2=36种,决定哪个数出现2次有2种方法,把不同的一个数插到相同的两个数中有3种方法。此情况共有36*2*3=216种。 所有情况为216+216=512种。
发表于 2016-09-20 00:57:25 回复(0)
C(1,9)*C(1,8)*C(1,3)*A(2,2)
发表于 2020-03-21 00:36:15 回复(0)
第一位是1,所以看后面的概率
第二位:(是1+不是1)
            第二位是1:1*1*9*8 = 72
            第二位不是1:1*9*(第三位是重复的+第四位是重复的)
                                    第三位是重复的:1*9*2*8 = 16
                                    第四位是重复的:1*9*8*3 = 24
            第二位不是1:1*9*(16+24) = 360
一共可能是:360+72 = 432
发表于 2019-08-30 17:35:35 回复(0)

审题仔细,首先是,首位为1,然后,后面的重复的数可以为1。相同的两个数字,不一定要放在一起。

编辑于 2019-06-14 13:11:02 回复(0)
count=0 for i in range(1000,2000):
    logs=[0]*10  for i in str(i):
        logs[int(i)]+=1  if logs.count(2)==1:
        count+=1 print(count)




发表于 2018-02-02 09:03:34 回复(0)