T1086 数1的个数

蒜头君给了一个十进制正整数 n,让你帮忙写下从 1 到 n 的所有整数,然后数一下其中出现的数字1的个数。

例如当 n=2 时,写下 1,2,这样只出现了 1 个1;当 n=12 时,写下 1,2,3,4,5,6,7,8,9,10,11,12,这样出现了 5 个1。

输入格式
正整数 n。1≤n≤10000。
输出格式
一个正整数,即1的个数。
样例输入
12
样例输出
5

#include<stdio.h>
int yu(a)
{   int x,count=0;
    while(a>0)
    {
         x=a%10;
            if(x==1)
                count++;
         a=a/10;
    }
 return count;
}
int main(){
    int n,x,count=0;
    scanf("%d",&n);
    for(int i=1;i<=n;i++)
    {
        x=yu(i);
        count=count+x;
    }
    printf("%d",count);
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 这是因为一个方程组的解必须满足所有方程的约束条件,而方程的个数少于未知个数意味着约束条件不够,存在自由变量,因此必存在非零解。 举个例子,假设有两个未知x、y,但只有一个方程x+y=0,那么这个方程组的解集为{(x,y)|x=-y},其中y可以取任意实,因此存在无个解,而且其中必包括非零解。 ### 回答2: 当方程的个数少于未知个数时,如果没有非零解,则意味着这些方程是不可能同时满足的。 假设有n个未知和m个方程,其中m < n。我们可以将未知表示为一个n维向量X=[x1, x2, ..., xn]^T,将方程表示为一个m维向量F=[f1, f2, ..., fm]^T。方程可以写成F(X) = 0,其中F(X)是一个映射函。 如果方程没有非零解,那么对于任意给定的X,F(X) = 0成立。这意味着映射函F将整个n维空间映射到零向量。而,根据线性代的基本理论,一个映射将一维向量映射到零向量只有一个解,二维向量映射到零向量的解有无限个,n维向量(n > 1)映射到零向量的解集也有无限个。因此,F将整个n维空间映射到零向量的概率几乎为零,这是高度不可行的。 所以,方程的个数少于未知个数存在非零解。这是因为未知的维度更高,导致方程所代表的映射函难以将整个n维空间映射到零向量。这种情况下,我们可以通过求解方程组找到非零解。 ### 回答3: 这是因为当方程的个数少于未知个数时,无法通过线性组合将所有未知都解出,必存在至少一个未知无法被唯一确定。当存在未知无法确定时,就会存在非零解的情况。 具体来说,当方程的个数少于未知个数时,可以被表示为一个矩阵与未知向量相乘等于零向量的形式,即Ax=0。其中A为系矩阵,x为未知向量,0为零向量。如果方程的个数m小于未知个数n,即m<n,那么系矩阵A的行m小于列n。 根据线性代的知识,对于方程组的解来说,当系矩阵的秩等于行m时,解为唯一解,无非零解存在;当系矩阵的秩小于行m时,解存在无穷多个,其中包括非零解。 对于此题中的情况,由于方程个数少于未知个数,即m<n,所以系矩阵A的秩必小于行m。根据线性代的结论,这意味着方程存在无穷多个解,其中包括非零解。因此,必存在非零解的情况。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值