用C语言编写计算100至1000之间有多少个数其各位数字之和是5的程序是什么呀

用C语言编写计算100至1000之间有多少个数其各位数字之和是5的程序是什么呀,第1张

#include

<stdioh>

int

main(void)

{

int

i,s,k,count=0;

for(i=100;i<=1000;i++)

{

s=0;k=i;

while(k)

{

s=s+k%10;

k=k/10;

}

if(s!=5)

continue;

else

count++;

}

printf("%d",count);

return

0;

}

#include

<stdioh>

int

getSum(int

num)

{

char

buf[10];

int

sum

=

0;

int

i

=

0;

sprintf(buf,"%d",num);

while(buf[i])

sum

+=

buf[i++]

-

'0';

return

sum;

}

int

main(void)

{

int

i;

for(i

=

100;

i

<=

1000;

i++)

if(getSum(i)

==

5)

printf("%d\t",i);

return

0;

}

import javaioBufferedReader;

import javaioInputStreamReader;

public class Test {

public static int getInput() {

int input = 0;

BufferedReader br = new BufferedReader(new InputStreamReader(Systemin));

try {

String str = brreadLine();

input = IntegerparseInt(str);

} catch (Exception e) {

Systemoutprintln("输入有误,重新输入:");

getInput();

}

return input;

}

public static int[][] createSquare(int n) {

int i, j;

int square[][] = new int[n][n];

Systemoutprintln("输入正方形数字矩阵:");

for (i = 0; i < n; i++) {

for (j = 0; j < n; j++) {

Systemoutprintln("[" + (i + 1) + "]" + "[" + (j + 1) + "] :");

square[i][j] = getInput();

}

}

return square;

}

public static void main(String[] args) {

Systemoutprintln("输入正方形的边长(整数):");

int i = getInput();

if (i != 0) {

Systemoutprintln("i = " + i);

int square[][] = new int[i][i];

square = createSquare(i);

display(square);

getSum(square);

}

}

private static void getSum(int[][] square) {

int n = squarelength;

int sum_1 = 0,sum_2 = 0;

int i, j;

Systemoutprint("\n正对角线之和为: ");

for (i = 0; i < n; i++) {

for (j = 0; j < n; j++) {

if (i==j) {

sum_1 = sum_1 + square[i][j];

Systemoutprint(square[i][j]);

if (i<n-1){

Systemoutprint("+");

}

}

}

}

Systemoutprintln("="+sum_1);

Systemoutprint("\n另一条对角线之和为: ");

for (i = 0; i < n; i++) {

for (j = 0; j < n; j++) {

if (i+j==(n-1)) {

sum_2 = sum_2 + square[i][j];

Systemoutprint(square[i][j]);

if (i<n-1){

Systemoutprint("+");

}

}

}

}

Systemoutprintln("="+sum_2);

}

private static void display(int[][] square) {

// TODO Auto-generated method stub

int i, j;

int n = squarelength;

Systemoutprintln("该正方形数字矩阵为:");

for (i = 0; i < n; i++) {

for (j = 0; j < n; j++) {

Systemoutprint(square[i][j] + "\t");

}

Systemoutprintln();

}

}

}

输出的答案为 21

简单的可以这么理解:b1setN(3) 调用了上面void setN(int n)这个方法,

int s1=b1getSum( ) 将n=3的值代入sum=sum+i这个式子(i从1开始不断加1知道i<=n,在这里就是i从1到3) 算出s1=6

同样的方法算出s2=15

最后要求输出s1+s2=21

希望能帮到你

如果我的回答对你有帮助,请选为满意答案,谢谢 !

1、程序建立1000个线程,有可能造成系统创建大量线程而导致消耗完系统内存,还会增加创建和销毁线程上所花的时间以及系统资源的开销

2、在创建线程数多的情况下,可以考虑使用线程池

以下是Java自带的几种线程池:

(1)、newFixedThreadPool 创建一个指定工作线程数量的线程池。

每当提交一个任务就创建一个工作线程,如果工作线程数量达到线程池初始的最大数,则将提交的任务存入到池队列中。

(2)、newCachedThreadPool 创建一个可缓存的线程池。

这种类型的线程池特点是:

1)工作线程的创建数量几乎没有限制(其实也有限制的,数目为Interger MAX_VALUE), 这样可灵活的往线程池中添加线程。

2)如果长时间没有往线程池中提交任务,即如果工作线程空闲了指定的时间(默认为1分钟),则该工作线程将自动终止。终止后,如果你又提交了新的任务,则线程池重新创建一个工作线程。

(3)、newSingleThreadExecutor 创建一个单线程化的Executor,即只创建唯一的工作者线程来执行任务,如果这个线程异常结束,会有另一个取代它,保证顺序执行(我觉得这点是它的特色)。

单工作线程最大的特点是可保证顺序地执行各个任务,并且在任意给定的时间不会有多个线程是活动的 。

(4)、newScheduleThreadPool 创建一个定长的线程池,而且支持定时的以及周期性的任务执行,类似于Timer。

3、示例代码

package test;  

import javautilconcurrentExecutorService;  

import javautilconcurrentExecutors;  

public class ThreadPoolExecutorTest {  

 public static void main(String[] args) {  

  ExecutorService cachedThreadPool = ExecutorsnewCachedThreadPool();  

  for (int i = 0; i < 1000; i++) {  

   

   cachedThreadPoolexecute(new Runnable() {  

    public void run() {  

         //在这里执行你需要的功能

    }  

   });  

  }  

 }  

}

#include<stdioh>

long fun(int n)

{

int i;

long s=1;

for(i=1;i<=n;i++)

s=si;

return s;

}

void main()

{

int i;

double sum=0;

for(i=1;i<=10;i++)

sum=sum+10/fun(i);

printf("sum=%f\n",sum);

}

嗯 前面将b1和b2分别附给了自身的静态常量sum

b1内的静态常量是3

b2的是5

关键从这开始

int s1=b1getsum(); //将自己的静态常量 sum进行循环运算

//循环中每次改变该对象静态常量中的值。返回sum结果为6

int s2=b2getsum(); //b2将自己的sum带进去 运算同上, 结果为21

很简单,静态常量的生命周期是有 该类对象而定的。

每当该类对象被实例化时,则会在此对象中派生此静态常量。

常量始终值存储在内存中,可以被改变。直至弃用改对象。此常量会与该对象一同被垃圾回收机制回收。

#include<iostream>

using namespace std;

int getsum(int n)

{

int sum=0;

while(n)

{

sum+=n%10;

n/=10;

}

return sum;

}

int func(int n)

{

if(n==0)

{

return 1;

}

if(n==1)

{

return 11;

}

else if(n%2)

{

int t=func(n/2);

return (tt11)%1000;

}

else

{

int t=func(n/2);

return (tt)%1000;

}

}

int main()

{

int n;

while(cin>>n)

{

cout<<getsum(func(n))<<endl;

}

return 0;

}

class B {

int n;//定义一个int类型的类成员变量

static int sum=0;//定义一个int类型的静态类成员变量

void setN(int n){//类成员变量n的赋值函数

thisn=n;

}

int getSum(){//1+2+3+。。。+n 的求和函数,返回求和的结果sum

for(int i=1;i<=n;i++)

sum=sum+i;

return sum;

}

}

public class E2 {

public static void main(String []args){ 

B b1=new B(),b2=new B();//新建两个B类型的变量

b1setN(3);//为b1的n赋值

b2setN(5);//为b2的n赋值

int s1=b1getSum();//获得b1中的求和结果

int s2=b2getSum();//获得b2中的求和结果

Systemoutprintln(s1+s2);//在控制台输出s1和s2的求和结果

}

}

以上就是关于用C语言编写计算100至1000之间有多少个数其各位数字之和是5的程序是什么呀全部的内容,包括:用C语言编写计算100至1000之间有多少个数其各位数字之和是5的程序是什么呀、用java编程一个正方形对角线的数相加的程序、哪位大虾。。帮帮我给下面的程序加注释,说明其中变量类型及使用方法,写出程序可能的运行结果。谢谢。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/zz/9783259.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-01
下一篇2023-05-01

发表评论

登录后才能评论

评论列表(0条)

    保存